Как мне выполнить итерацию строк и столбцов многомерного массива?

StackOverflow https://stackoverflow.com/questions/832655

Вопрос

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

object[,] values;

Как бы мне выполнить итерацию только по строкам и только по столбцам?

Это было полезно?

Решение

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

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]);

Другие советы

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

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];
}

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

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

object[][] values;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top