是否有适合群组的收藏类型?或者是List<IGrouping<Key, ItemType>>
的唯一选择?
基本上,我想要对列表进行字典类型的操作,例如GroupList.ContainsKey(key)
和GroupList.TryGetItems(key, out items)
,以及一些与组相关的内容,例如GroupList.AddToGroup(key, Item)
。
是的,我知道我可以自己编写这些扩展方法,但如果组中已有某些内容,我不想重新发明轮子。
如果没有,那么我将“自己动手”。
答案 0 :(得分:1)
尝试使用KeyValuePair
:http://msdn.microsoft.com/en-us/library/5tbh8a42(v=vs.110).aspx他们非常通用,使与KV相关的事情变得更加容易。 (作为参考,我将这些用于哈希表实现,我必须为课程编写。对密钥进行哈希并提取值,然后你就完成了。这很棒。)
我推荐一个列表:
List<KeyValuePair<String, Int32>> things = new List<KeyValuePair<String, Int32>>();
然后你可以做一些很酷的事情,比如(LINQ):
from x in things
where x.Key == "me me me!"
select x
答案 1 :(得分:1)
如果您想通过yourGroupingType 分组 yourRecordType的记录,并执行&#39; Dictionary-Things&#39;有了它 - 为什么不选择Dictionary
或SortedDictionary
?
Dictionary <yourGroupingType, List<yourRecordType > >
我认为这将为您提供所需的一切。字典有很多方法。
如果你真的只有键值对,那么结构就会更简单,但是我不知道分组会在哪里出现?