Как перебрать строки и столбцы многомерного массива? - PullRequest
6 голосов
/ 07 мая 2009

Я бы хотел перебирать строки и столбцы отдельно в двумерном массиве:

object[,] values;

Как бы я перебрал только строки и только столбцы?

Ответы [ 3 ]

13 голосов
/ 07 мая 2009

Это зависит от того, какие столбцы и строки для вас, но вы можете использовать этот фрагмент кода:

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

И

for (int i = 0; i < values.GetLength(1); i++)
            Console.WriteLine(values[0, i]);
2 голосов
/ 07 мая 2009

Вот некоторый код для перебора первого и второго измерений массива 2-мерного массива. (На самом деле не существует «строк» ​​и «столбцов», потому что многомерный массив может иметь любое количество измерений)

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];
}
1 голос
/ 07 мая 2009

Многомерные массивы не имеют строк и столбцов в том виде, в каком вы к ним обращаетесь - они просто имеют несколько индексов, используемых для доступа к значениям. Итерация по такому массиву будет выполняться с использованием вложенных циклов for, и, если вы хотите выполнить определенные вычисления на основе измерения, вы должны соответствующим образом изменить порядок циклов.

Другой вариант, если вам нужно только выполнить итерации по одному измерению, это использовать массив массивов вместо многомерного массива, например:

object[][] values;
...