【问题标题】:Handling a multi-dimensional data structure in .Net 3.5 and above在 .Net 3.5 及更高版本中处理多维数据结构
【发布时间】:2009-07-20 23:06:24
【问题描述】:

我想构建一个二维(此时非参差不齐)对象数组。

我可以轻松构建二维数组[,],如果它是可用的最佳选项,我会这样做,但倾向于避免使用数组,而倾向于使用 .NET 的列表和字典结构的高级功能。

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

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

【问题讨论】:

    标签: .net arrays


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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我不知道元组在 .NET 4 中得到了正确的实现,值得期待。
      【解决方案3】:

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

      如果内部优化使二维数组比手动对一维数组使用行主索引更快,我一点也不感到惊讶。如果反过来,我也不会感到惊讶。如果这很重要,请确保使用质量分析器(无论哪种方式在实际应用中都应该很快,我在这里说的是矩阵数学)。

      【讨论】:

        猜你喜欢
        • 2010-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多