Ответ 1
Хорошо, теперь, когда мы знаем вашу цель вместо того, как вы пытались ее достичь, гораздо легче ответить на ваш вопрос: вы не должны использовать цикл foreach
. foreach
- это чтение элементов из коллекции - не изменение содержимого коллекции. Хорошо, что компилятор С# делает переменную итерации только для чтения, иначе она позволила бы вам изменить значение переменной без фактического изменения коллекции. (Там должны быть более существенные изменения, позволяющие отражать изменения...)
Я подозреваю, что вы просто хотите:
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
array[i, j] = new Item();
}
}
Предположим, что это прямоугольный массив (a Item[,]
). Если это Item[][]
, то это массив массивов, и вы будете обрабатывать его несколько иначе - возможно, с foreach
для внешней итерации:
foreach (var subarray in array)
{
for (int i = 0; i < subarray.Length; i++)
{
subarray[i] = new Item();
}
}