Массив как глобальная переменная

Нужно создать глобальный массив visited с длиной StationCount. Пробовал делать его статическим, но при выполнении дальнейших операций выходит ошибка, что индекс вышел за границы массива

class Metro
{
    public List<Station> AllStations = new List<Station>();
    public int StationCount { get { return AllStations.Count; } }
    bool[] visited = new bool[StationCount];
    public void AddStation(Station station)
    {
        AllStationss.Add(station);
  }

Метод, в котором используется массив visited:

public void DFS(int[,] matrix, int curr)
    {
        visited[curr] = true;
        for (int i = 0; i < StationCount; i++)
        {
            if (matrix[curr, i] != 0 && (!visited[i]))
            {
                DFS(matrix, i);
            }
        }
    }

Ответы (1 шт):

Автор решения: aepot

Вот вы создали список

public List<Station> AllStations = new List<Station>();

Сколько в нем элементов? 0

Далее создаете массив

bool[] visited = new bool[StationCount]; // AllStations.Count

То есть массив из 0 элементов.

Далее выполняете

visited[curr] = true;

Чем бы ни было curr, будет исключение, потому что в массиве ничего нет, 0 элементов.

Если вам нужно много bool элементов по количеству Station в списке, создайте публичное поле в классе Station и обращайтесь к нему, массив не нужен вообще.

→ Ссылка