如何迭代多维数组的行和列?

我想在二维数组上分别迭代行和列:

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;