ILookup<key, value>
界面与IDictionary<key, value>
的区别如何?
我不明白ILookup
界面是什么意思。
答案 0 :(得分:104)
ILookup
条目每个键可以包含多个项目 - 每个键都映射到IEnumerable<TElement>
。
同样在评论中暗示ILookup
是不可变的,而您可以更新IDictionary
中的值(它会公开Add()
方法和允许的索引器和设置值。)
总之,他们的用例非常不同 - 当您需要1:N映射时,您使用查找,其中值是固定的,不会(也不会)更改。另一方面,字典提供了键值对的可变 1:1映射,因此可以更新它以添加或删除值。
答案 1 :(得分:4)
它比IDictionary
简单得多。它由Linq使用。它只有Contains
,Item
和Count
。 IDictionary
有Add
,Remove
等
答案 2 :(得分:0)
ILookUp => 按键分组,可枚举集合
单键值是指可枚举的集合,我们可以在其中迭代值集合。
IDictionary => 按不同键分组,单值