Мой код выдает это:
ArgumentOutOfRangeException: Аргумент выходит за пределы диапазона.
Имя параметра: ошибка индекса
Когда он находит элемент в спискекоторые имеют количество меньше определенного числа.какие-нибудь идеи о том, как исправить код?
Я добавил код debug.log везде, чтобы точно определить, где происходит ошибка, потому что Visual Studio не подчеркивает ошибки.
List<int> emptyRows = new List<int>();
for (int j = 0; j < gridPositions.Count; j++) // try to find if a row is still empty
{
Debug.Log("gridPositions[" + j + "].Count is " + gridPositions[j].Count);
Debug.Log("columns are" + columns);
if (gridPositions[j].Count == columns)
{
Debug.Log("trying to add to emptyrows");
emptyRows.Add(j);
Debug.Log("added to emptyrows and its count is " + emptyRows.Count);
}
else
{
Debug.Log("found an occupied row at row " + j);
//ERROR STRIKES HERE
}
Debug.Log("emptyRows is " + emptyRows[j]);
Debug.Log("emptyRows count is " + emptyRows.Count);
}
Я ожидаю, что emptyRows будет отслеживать и записывать все незанятые строки, но когда он заполняет занятую строку, он не переходит к циклу for и останавливается.