Bien, ahora que sabemos que su objetivo en lugar de la forma en que estaba tratando de alcanzarlo, es mucho más fácil Responde tu pregunta: no deberías estar usando un bucle foreach
. foreach
es aproximadamente leyendo elementos de una colección - no cambia el contenido de una colección. Es un buen trabajo que el compilador de C# haga que la variable de iteración sea de solo lectura; de lo contrario, le hubiera permitido cambiar el valor de la variable sin que realmente cambie la colección. (No tendría que haber más cambios significativos para permitir cambios se reflejen ...)
sospecho que lo que desea es:
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
array[i, j] = new Item();
}
}
Eso está asumiendo que es una matriz rectangular (un Item[,]
). Si se trata de un Item[][]
entonces es una matriz de matrices, y que se encargaría de que de forma ligeramente diferente - muy posiblemente con una foreach
para la repetición externa:
foreach (var subarray in array)
{
for (int i = 0; i < subarray.Length; i++)
{
subarray[i] = new Item();
}
}
¿Por qué no sólo tiene que utilizar otra variable? – sczdavos
@sczdavos ¿cómo exactamente? – user1306322
'var myItem; foreach (elemento var en twoDimArray) myItem = new Item(); ' – sczdavos