2

希望这不是重复的,因为我确实进行了搜索,但一无所获。

乍一看,我以为他们会表现得相似,但没有。一个是字符串的二维数组,另一个是字符串数组的数组,即从 (List<string[]>)obj.ToArray() 返回的内容。

我知道如何使用 (List<string[]>)obj.ToArray() 返回锯齿状数组类型。

如何使用类似的概念返回二维数组,即从其他数据构建一个集合对象并调用 ToArray 或其他将返回二维数组的方法。

谢谢

4

2 回答 2

8

一个是锯齿状数组,另一个是多维数组

有一些差异。多维数组将保证每一行都有长度。对于锯齿状数组,每个“行”都是一个数组,这些数组的大小可以不同。

另一个区别是内存布局。多维数组是单个对象,数组元素保证在内存中靠得更近。由于交错数组是数组的数组,因此不能保证每个数组都会在内存中按顺序分配,尤其是在多线程情况下。

还需要注意的是.NET Framework Design Guidelines for Array Usage建议在多维上使用锯齿状数组:

√ 考虑使用交错数组而不是多维数组。

于 2013-06-27T18:27:31.470 回答
1

锯齿状数组是 string[][] 二维数组是 string[,]

换句话说,对于 string[,],每一行都有相同数量的元素。在 string[][] 中,每一行可能有不同数量的元素。

于 2013-06-27T18:29:15.227 回答