希望这不是重复,因为我做了搜索而没有发现任何内容。
乍一看,我认为他们会表现得相似,但没有。一个是字符串的二维数组,另一个是字符串数组的数组,即从(List< string []>)obj.ToArray()返回的内容。我知道如何使用(List< string []>)obj.ToArray()返回锯齿状数组类型。
如何使用类似的概念返回2d数组,即从其他数据构建集合对象并调用ToArray或其他将返回2d数组的方法。
由于
答案 0 :(得分:8)
一个是jagged array,另一个是multidimensional array。
存在一些差异。多维数组将保证每行具有长度。对于锯齿状数组,每个“行”都是一个数组,这些数组的大小可以不同。
另一个区别在于内存布局。多维数组是单个对象,保证数组元素在内存中更加靠近。由于锯齿状数组是一个数组数组,因此不能保证每个数组都会在内存中顺序分配,特别是在多线程情况下。
值得注意的是,.NET Framework Design Guidelines for Array Usage建议在多维上使用锯齿状数组:
√考虑使用锯齿状数组而不是多维数组。
答案 1 :(得分:1)
锯齿状数组是string [] [] 2d数组是字符串[,]
换句话说,使用string [,]每行具有相同数量的元素。 在string [] []中,每一行可能有不同数量的元素。