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

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