实现身份映射的最佳结构是什么?

发布于 2024-07-08 06:46:51 字数 161 浏览 4 评论 0原文

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

更新

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

Although a DataTable is a memory hog, wouldn't a DataTable be the best choice to implement and IdentityMap if the set of objects is very large since retrieval time is O(1)?

Update

If I decide to use IDictionary, do I sacrifice speed when retrieving my objects?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

场罚期间 2024-07-15 06:46:51

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

另请注意,字典与数据绑定的配合不太好。 最好创建类似 Collection 之类的东西,但封装一个用于查找的Dictionary<,>。 当然,这一切都取决于场景。

有关 SortedList<,> 等之间的性能等差异的更多信息,请参阅 这里

Any of Dictionary<,>, SortedList<,> or SortedDictionary<,> would be obvious choices - but note tha sorting becomes an issue here... Dictionary<,> doesn't guarantee any particular order; the other two order by the keys rather than insertion order.

Note also that dictionary won't play very nicely with data-binding. It might be preferable to create something like a Collection<T>, but encapsulate a Dictionary<,> for lookups. It all depends on the scenario, of course.

More information on the performance etc differences between SortedList<,> etc can be found here.

桜花祭 2024-07-15 06:46:51

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

I'd be more inclined to use a custom class backed by a Dictionary<T,T> than a DataTable. Presumably this would be built on top of a data access layer that could use LINQ or DataTables, etc. to access the relational data, but if the object is available in the custom map, you would at least avoid having to reconstitute it from the relational data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文