实现身份地图的最佳结构是什么?

时间:2008-11-09 12:50:55

标签: c# data-structures identity-map

虽然DataTable是一个内存耗尽,但如果对象集非常大,那么DataTable不是实现和IdentityMap的最佳选择,因为检索时间是O(1)吗?

更新

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

2 个答案:

答案 0 :(得分:5)

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

另请注意,字典在数据绑定方面不会很好用。最好创建类似Collection<T>的内容,但封装 Dictionary<,>进行查找。当然,这完全取决于场景。

有关SortedList<,>等{{1}}等性能差异的更多信息,请here

答案 1 :(得分:1)

我更倾向于使用由Dictionary&lt; T,T&gt;支持的自定义类。比DataTable。据推测,这可以构建在可以使用LINQ或DataTables等访问关系数据的数据访问层之上,但如果对象在自定义映射中可用,则至少可以避免从关系数据中重新构建它。数据