Find one inactive player (gameobject)

when my player gets a power up i want it to multiply x2. The way I have it set up (tell me if there is a better way) is that I have a bout 10 players at start but only one is active. When the player gets the power up I want to activate one of the inactive players. The player can keep getting x2 power ups creating numerous players on the scene. My biggest problem is that its proving hard to find just one inactive player and activate it. All the players are children of 1 parent so I thought of using getcomponentinchildren(true) but that could return an already active player.
I assume I should make an array of all the players at start with getcomponentsinchildren and then somehow each time the player hits the power up go through the array looking for 1 inactive player to activate.
I have already read all the other posts about this and am still stuck.
The code I have so far to create the array is this but it doesn’t seem to work. Any help would really be appreciated!

Transform[] allChildren;
  public GameObject playerparent;

 void Start()
{
 allChildren = playerparent.GetComponentsInChildren<Transform>(true);
             foreach (Transform child in allChildren)
          {
              child.gameObject.SetActive(false);
          }
}

public GameObject playerparent;
for (int j = 0; j < playerparent.gameObject.transform.childCount; j++)
{

 playerparent.transform.GetChild(j).gameObject.SetActive(True);
          }

Try This

You could do :

 Transform[] allChildren;
   public GameObject playerparent;
 
  void Start()
 {
       allChildren = playerparent.GetComponentsInChildren<Transform>(true);
       foreach (Transform child in allChildren)
      {
         if (child.gameObject.ActiveSelf == false)
         {
              child.gameObject.SetActive(true);
          }
      }
}

Ok, so I think i found an answer :

foreach (Transform child in GameControll.instance.allChildren)
{ 
     if (child.gameObject.activeInHierarchy == false)
     { 
          child.gameObject.transform.position = new Vector2(gameObject.transform.position.x+2, gameObject.transform.position.y);
 
               child.gameObject.SetActive(true);
               break;
      }
}