【发布时间】:2014-08-04 19:13:08
【问题描述】:
我正在尝试开发一个自定义集合或列表类,它为我提供以下功能:
Add(MyObject)
Add(MyObject, String) ' key
Remove(MyObject)
RemoveByKey(String) ' key
RemoveAt(Index)
Count
Clear
Item(Index)
Item(String) ' key
Contains(MyObject)
ContainsKey(String) ' key
GetEnumerator ' for-each MyObject
我搜索了 IEnumerable、IList、ICollection,但没有一个能满足我上面的需求。例如,它们都缺少通过 Key(string) 存储对象。 如何创建这样的集合/列表对象?我注意到最符合我要求的是系统可用的 ListViewItemCollection 对象。我希望我能看到它里面的编码,以了解它是如何实现对象的存储和检索的。
有人可以帮忙吗?或者引导我访问教程链接。
谢谢。
【问题讨论】:
-
听起来你想要一本字典。
-
添加到@SLaks 评论,微软在此处提供
Dictionary<TKey, TValue>实现的源代码:referencesource.microsoft.com/#mscorlib/system/collections/… -
这看起来更像是
OrderedDictionary,因为他也想通过索引访问项目。 -
我会结合两个容器 - 字典用于那些有键和列表的所有容器。 Index和Key有关系吗?
-
@SLaks 我不建议使用
OrderedDictionary,我将Dictionary与他正在寻找的内容进行了比较。我不是要攻击您的评论,只是想提供帮助
标签: c# list collections ienumerable