10

从有关该Array.Copy方法的 MSDN 文档中:

在多维数组之间复制时,数组的行为类似于一个长的一维数组,其中行(或列)在概念上是首尾相连的。例如,如果一个数组有三行(或列),每行有四个元素,从数组的开头复制六个元素将复制第一行(或列)的所有四个元素和第二行的前两个元素(或列)。

我一直认为,在 C# 中,二维数组以行优先顺序排列(对于更高维度也是如此),所以我对上述文档中带括号的“或列”的含义感到困惑。这是否意味着.NET Framework 可能在某些情况下使用列优先排序?

4

1 回答 1

12

怀疑它只是试图传达一个数组不是一个矩形——它是一个单一的线性空间。任何“行”或“列”的概念实际上都是用户的发明。没有行也没有列;任何与arr[x,y]“第 x 行,第 y 列”或“第 x 列,第 y 行”类似的约定纯粹是:约定;我们在概念化某些东西时的一部分想象力。唯一真正的顺序是首先导航哪个索引。首先?还是最后一个?

是否将其称为“行”或“列”取决于您,并且在野外都有使用这两种方法的示例。

于 2013-06-10T14:01:02.193 回答