Pregunta

Me gustaría iterar las filas y columnas por separado en una matriz bidimensional:

object[,] values;

¿Cómo iteraría solo a través de las filas y solo las columnas?

¿Fue útil?

Solución

Depende de las columnas y filas para usted, pero podría usar este fragmento de código:

for (int i = 0; i < values.GetLength(0); i++)
            Console.WriteLine(values[i, 0]);

Y:

for (int i = 0; i < values.GetLength(1); i++)
            Console.WriteLine(values[0, i]);

Otros consejos

Aquí hay un código para iterar a través de la primera y segunda dimensiones de la matriz, una matriz bidimensional. (Realmente no hay '' filas '' y '' columnas '' porque una matriz multidimensional puede tener cualquier cantidad de dimensiones)

object[,] values = new object[5,5];
int rowIWant = 3; //Make sure this is less than values.GetLength(0);
//Look at one "row"
for(int i = 0; i < values.GetLength(1); i++
{
    //Do something here with values[rowIWant, i];
}

int columnIWant = 2; //Make sure this is less than values.GetLength(1);
//Look at one "column"
for(int i = 0; i < values.GetLength(0); i++
{
    //Do something here values[i, columnIWant];
}

Las matrices multidimensionales no tienen filas y columnas en la forma en que se refiere a ellas, solo tienen varios índices utilizados para acceder a los valores. La iteración sobre una matriz de este tipo se haría utilizando bucles for anidados, y si desea realizar ciertos cálculos sobre una base por dimensión, debe alterar el orden de los bucles en consecuencia.

Otra opción, si solo necesita iterar sobre una dimensión, es usar una matriz de matrices en lugar de una matriz multidimensional como esta:

object[][] values;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top