SortedCollection 中需要允许重复项(C#、2.0)
我正在开发一个项目,需要更改“BaseSortedCollection”类以允许重复。 该类当前实现了 IEnumerable、IDisposable、ICollection 和 ISerialized。 “BaseSortedCollection”存储具有 ItemID (Int64) 的 Item,该 ItemID 用作访问集合时的键。 我需要集合中同时存在两个相同的项目(相同的 ItemID)并且能够被检索。
我们使用的是2.0框架。
有什么建议么?
提前致谢!
I have a project that I'm working on that requires changing a 'BaseSortedCollection' class to allow duplicates. The class currently implements IEnumerable, IDisposable, ICollection, and ISerializable. The 'BaseSortedCollection' stores Items that have an ItemID (Int64), which is used as the key when accessing the collection. I need to have two identical items (same ItemID) exist in the collection at the same time as well as be able to be retrieved.
We are using the 2.0 framework.
Any suggestions?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
BaseSortedCollection 中的每个项目都可以是一个 List(T),因此,如果您有两个具有相同键的项目,则您将拥有一个 List(T),其中包含与该键对应的条目的两个项目。
Each item in your BaseSortedCollection could be a List(T), so if you have two items with the same key, you will have a List(T) containing two items for the entry corresponding to that key.
我假设您正在扩展一种不允许重复键的字典。
这个实现怎么样。 我假设您的 Item 实现了 IComparable。
这应该有效(使用 MsTest)
I assume that you were extending a kind of dictionary that do not allow douplicate keys.
What about this implementation. I Assume that your Item implements IComparable.
this should work (using MsTest)
我猜你必须扩展一个常规的 ArrayList,并重写 Add 方法来调用 Sort 如果你需要自动排序。 但是,我似乎无法理解两个具有相同(应该是唯一的)标识号的项目的想法?!
编辑,或者NameValueCollection(在System.Collections.Specialized中)可能更合适? 扩展它并添加您自己的排序方法......
I guess you will have to extend a regular ArrayList, and override the Add-method to call Sort if you need the auto sorting. However, I can't seem to wrap my head around the idea of two items with the same (what should be unique) identification number?!
Edit, or maybe NameValueCollection (in System.Collections.Specialized) is more appropriate? Extend it and add your own sorting method...