Okay, ora che sappiamo che la vostra mirare invece di come si stava tentando di raggiungerlo, è molto più facile per rispondi alla tua domanda: non dovresti utilizzare un ciclo foreach
. foreach
è circa leggendo elementi da una raccolta - non modifica il contenuto di una raccolta. È un buon lavoro che il compilatore C# renda la variabile di iterazione di sola lettura, altrimenti ti permetterebbe di cambiare il valore della variabile senza che in realtà cambiasse la collezione. (Ci sarebbe dovuto essere più cambiamenti significativi per consentire modifiche vengano riflesse ...)
Ho il sospetto che si desidera solo:
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
array[i, j] = new Item();
}
}
che è ammesso che sia una matrice rettangolare (una Item[,]
). Se si tratta di un Item[][]
allora è un array di array, e si sarebbe gestire che in modo leggermente diverso - molto probabilmente con un foreach
per l'iterazione esterna:
foreach (var subarray in array)
{
for (int i = 0; i < subarray.Length; i++)
{
subarray[i] = new Item();
}
}
fonte
2012-08-04 18:03:06
Perchè non basta usare un'altra variabile? – sczdavos
@sczdavos come esattamente? – user1306322
'var myItem; foreach (var item in twoDimArray) myItem = new Item(); ' – sczdavos