How to return a value from an array of GameObjects?

I’m making a script that is supposed to dynamically understand how many areas there are that that will load another scene when activated. When SceneUpdate() is called at Awake(), I’d like it to find all game objects tagged by areaLoader and pay attention to Next_Level_Index, which always returns zero instead of noticing the one “areaLoader” that returns a value higher than 1.

    void SceneUpdate()
    {
        GameObject[] controllers = GameObject.FindGameObjectsWithTag("areaLoader");
        AreaController = new areaController[controllers.Length];

        for (int i = 0; i < controllers.Length; ++i)
            AreaController _= controllers*.GetComponent<areaController>();*_

}

void Update ()
{
for (int i = 0; i < AreaController.Length; ++i)
Debug.Log(AreaController*.Next_Level_Index);*

for (int i = 0; i < AreaController.Length; ++i)
if (AreaController*.Next_Level_Index > 1)
_{_
nextLevel = AreaController.Next_Level_Index;
_}*_

}
I’m really confused about FindGameObjectsWithTag and understand they return an array, but how can I test that array for values that pass the if statement shown at the bottom?

I fixed it, it turns out everything was fine but I just had to keep calling the initialization function by putting SceneUpdate in Update(It was only in awake before). I’ll probably call this only when scenes are added in the future.