child not set to parent while in for loop

Im having a problem where the card opject inside the array wont get set to the battlefield object on a consistent basis. so i have the code set up where it should constantly set out 3 cards at once, but sometimes it will only produce one or two cards. after running it in the debugger im seeing that its almost as if the set parent is refusing or skipping over the next item in the for loop. I dont think that the object are the issue since i duplicated the cards on the field i think its purely a code issue. heres the code let me know if you need the whole code but i debugged the entire class and everything leading up to now checks out.

            for( int i = 0; i < playingCards.Count; i++)
                //Debug.Log("i is at: " + i);

Debug.Log(“array size :” + playingCards.Count);
Debug.Log("of battle field child count is: " + BattleManager.battleField.transform.childCount);

I found the issue I didnt remove the card that got randomly picked from the deck it picked to be put in the playingCards array further up the code so it sometimes is picking a card that already was picked so I added a remove property for that set of cards after it picked the cards.