虽然DataTable是一个内存耗尽,但如果对象集非常大,那么DataTable不是实现和IdentityMap的最佳选择,因为检索时间是O(1)吗?
更新
如果我决定使用IDictionary,在检索对象时是否会牺牲速度?
答案 0 :(得分:5)
Dictionary<,>
,SortedList<,>
或SortedDictionary<,>
中的任何一个都是明显的选择 - 但请注意,排序在这里成为一个问题...... Dictionary<,>
不保证任何特定的顺序;另外两个按键而不是按顺序排序。
另请注意,字典在数据绑定方面不会很好用。最好创建类似Collection<T>
的内容,但封装 Dictionary<,>
进行查找。当然,这完全取决于场景。
有关SortedList<,>
等{{1}}等性能差异的更多信息,请here。
答案 1 :(得分:1)
我更倾向于使用由Dictionary&lt; T,T&gt;支持的自定义类。比DataTable。据推测,这可以构建在可以使用LINQ或DataTables等访问关系数据的数据访问层之上,但如果对象在自定义映射中可用,则至少可以避免从关系数据中重新构建它。数据