如何迭代多维数组的行和列?
我想在二维数组上分别迭代行和列:
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;