处理.Net 3.5及更高版本中的多维数据结构

时间:2009-07-20 23:06:24

标签: .net arrays

我想构建一个2维(此时没有参差不齐)的对象数组。

我可以轻松地构建一个二维数组[,],如果它是最好的选项,它会这样做,但是倾向于避免数组支持.NET的List和Dictionary结构的高级功能。

我还可以使用List< List< T>>存储二维数组,但是想知道在.NET 3.5或更高版本中是否有任何最佳实践或实现的数据结构来处理具有比数组更灵活/全面的功能的Type-2-n维结构?

我对SSAS / OLAP风格的答案不感兴趣。

3 个答案:

答案 0 :(得分:1)

我会看看.NET 3.5的Tuple实现。元组将在.NET 4.0中是原生的,因此这将是向前兼容的:

答案 1 :(得分:1)

数组是CLI基本数据类型之一。但是,“SzArray”(单维,基于0的索引)是阵列中最快的。这是你看到的宣称int[]的那个。无论哪种方式,如果您拥有固定大小的数据集,那么阵列(单维或多维)将提供最佳性能。

如果内部优化使得二维数组比使用单维数组的行主索引手动更快,我不会感到惊讶。如果是相反的话,我也不会感到惊讶。如果这很重要,请务必使用质量分析器(无论哪种方式都应该快速实际使用,我在这里谈论矩阵数学)。

答案 2 :(得分:1)

  • 二维数组可以很好地工作,它会消耗最少量的ram,并且具有最快的查找时间。它通常适用于只读数据
  • 列表列表,列表字典,数组字典或字典字典也可以很好地工作,具体取决于您需要如何访问数据等。