【发布时间】:2013-08-16 15:30:05
【问题描述】:
如果你有一个像 string[][] 这样的数组,假设前一个数组是矩形(不是锯齿状),那么将它转换为像 string[,] 这样的常规多维数组的最聪明的方法是什么?
我能想到的唯一方法是获取维度,用这些维度声明一个多维数组,然后循环遍历源数组并填充新数组。但我想知道是否有更简单的解决方案。
【问题讨论】:
-
您提出的解决方案有什么问题?哪些方面不足以满足您的需求?
-
另外,为什么你更喜欢
[,]而不是[][]?通常情况相反。 -
@YoryeNathan 好吧,多维数组改善了内存局部性。视情况而定,这可能是优势也可能是劣势。
-
@YoryeNathan 将数据从一维数组复制到多维数组比从锯齿状数组复制数据更容易吗?另请注意,制作两份而不是一份会产生戏剧性的性能成本。很可能是令人望而却步。至于废弃托管代码和直接复制底层内存,你只能从一维数组中做到这一点,这似乎一点也不简单。它似乎有点复杂。