C#中[,]和[] []之间的区别

时间:2016-10-30 20:39:54

标签: c# multidimensional-array mono

我目前正在尝试学习C#,我遇到了以下问题:

C#中某个类型的[,][][]之间有什么区别?

1 个答案:

答案 0 :(得分:1)

[,]表单创建矩形二维数组。指定尺寸时,您将获得这些尺寸的二维矩阵。它的所有元素都被初始化为元素类型的默认值。

int[,] array = new int[4, 2];

在内存方面,数组作为单个块存储在内存中(大小为width*height)。访问元素要慢一点,运行时执行更昂贵的操作 - 请参阅http://blog.mischel.com/2013/05/08/are-jagged-arrays-faster-than-rectangular-arrays/

[][]被称为锯齿状数组,它基本上是一个数组数组。创建它时,首先只指定第一个维度的大小:

int[][] jaggedArray = new int[3][];

现在你必须手动为每一行创建一个new数组(它们最初是null

jaggedArray[0] = new int[10];
jaggedArray[1] = new int[6];

这样做的好处是每行可以有不同的长度。

在内存中,每个行都存储在不同的位置,但访问特定元素最终会更快,因为它只需要运行时找到指向基本数组中行行数组的指针,然后找到所请求的元素就像在正常的数组中一样。