7

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

object[,] values;

我将如何仅遍历行和列?

4

3 回答 3

14

这取决于您的列和行,但您可以使用以下代码片段:

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]);
于 2009-05-07T02:58:23.033 回答
3

这是一些代码来遍历数组的第一维和第二维数组。(实际上没有“行”和“列”,因为多维数组可以有任意数量的维度)

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];
}
于 2009-05-07T02:59:03.813 回答
1

多维数组没有您引用它们的方式的行和列 - 它们只有几个用于访问值的索引。迭代这样的数组将使用嵌套的 for 循环来完成,如果您想在每个维度的基础上执行某些计算,您应该相应地更改循环的顺序。

如果您只需要迭代一个维度,另一种选择是使用数组数组而不是像这样的多维数组:

object[][] values;
于 2009-05-07T02:52:51.410 回答