4

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

更新

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

4

2 回答 2

5

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

另请注意,字典不会很好地与数据绑定一起使用。最好创建类似 a 的东西Collection<T>,但封装aDictionary<,>用于查找。当然,这一切都取决于场景。

SortedList<,>可以在此处找到有关 etc 之间的性能等差异的更多信息。

于 2008-11-09T13:32:52.623 回答
1

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

于 2008-11-09T13:02:39.207 回答