【问题标题】:What is the best structure to implement an Identity Map?实现身份映射的最佳结构是什么?
【发布时间】:2008-11-09 12:50:54
【问题描述】:

虽然 DataTable 会占用大量内存,但如果由于检索时间为 O(1) 而对象集非常大,那么 DataTable 不是实现和 IdentityMap 的最佳选择吗?

更新

如果我决定使用 IDictionary,是否会在检索对象时牺牲速度?

【问题讨论】:

    标签: c# data-structures identity-map


    【解决方案1】:

    Dictionary<,>、SortedList<,> 或 SortedDictionary<,> 中的任何一个都是显而易见的选择 - 但请注意,排序在这里成为一个问题......Dictionary<,> 不保证任何特定的顺序;其他两个按键排序,而不是插入顺序。

    还要注意,字典不能很好地与数据绑定配合使用。最好创建类似Collection<T> 的东西,但封装 Dictionary<,> 用于查找。当然,这一切都取决于场景。

    更多关于SortedList<,>等性能等差异的信息可以在here找到。

    【讨论】:

      【解决方案2】:

      我更倾向于使用由 Dictionary 支持的自定义类,而不是 DataTable。据推测,这将构建在可以使用 LINQ 或 DataTables 等来访问关系数据的数据访问层之上,但是如果该对象在自定义映射中可用,您至少可以避免从关系中重构它数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-15
        • 2017-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-17
        • 2020-06-26
        相关资源
        最近更新 更多