数组[][]和数组[,]有什么区别?

4

有人能解释一下这两个声明的区别吗?

  1. double dArray[][];
  2. double dArray[,];
第一个声明是一个二维数组,其中每个维度大小不确定。第二个声明也是一个二维数组,但只有第二个维度的大小未确定。

1
实际上,按照发布的方式,这不是有效的C#代码。 - BrokenGlass
因为它是 double[][] dArray;double[,] dArray; - Marlon
1
@user: 我不是@BrokenGlass,但与C和Java不同,在C#中,你需要将类型声明为 double[][]double[,],而不是在变量名上放置括号。 - BoltClock
4个回答

7
double dArray[][];

数组的数组是什么意思?

这个问题涉及到IT技术。
double dArray[,];

这是一个二维数组。

查找它们非常容易。

MSDN参考链接


3

首先是一个double数组的数组,这意味着dArray中的每个单独元素都可能包含不同数量的双精度浮点数,具体取决于数组的长度。

double[][] dArray = new double[3][];
dArray[0] = new double[3];
dArray[1] = new double[2];
dArray[2] = new double[4];

           Index
        0       1       2
      -----   -----   -----
L  1  |   |   |   |   |   |
e     -----   -----   -----
n  2  |   |   |   |   |   |
g     -----   -----   -----
t  3  |   |           |   |
h     -----           -----
   4                  |   |
                      -----

第二种称为多维数组,可以看作是一个矩阵,就像行和列一样。
double[,] dArray = new dArray[3, 3];

         Column
        0   1   2
      -------------
   0  |   |   |   |
R     -------------
o  1  |   |   |   |
w     -------------
   2  |   |   |   |
      -------------

3

最后一个语法很简单,它声明了一个双精度浮点数的多维数组。想象一下这个数组是3x2的,那么数组中就有6个双精度浮点数。

第一个语法声明了一个锯齿形数组。第二个语法是矩形或正方形的,但这种语法不一定是矩形或正方形的。你可以先有三行,接着三列,然后两列,再然后一列,也就是说它是锯齿形的。

2nd: 1-1, 1-2, 1-3
     2-1, 2-2, 2-3

1st: 1-1, 1-2, 1-3
     2-1, 2-2,
     3-1,

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接