ILookup接口与IDictionary

时间:2011-03-25 18:03:50

标签: c# .net

ILookup<key, value>界面与IDictionary<key, value>的区别如何?

我不明白ILookup界面是什么意思。

3 个答案:

答案 0 :(得分:104)

ILookup条目每个键可以包含多个项目 - 每个键都映射到IEnumerable<TElement>

同样在评论中暗示ILookup是不可变的,而您可以更新IDictionary中的值(它会公开Add()方法和允许的索引器和设置值。)

总之,他们的用例非常不同 - 当您需要1:N映射时,您使用查找,其中值是固定的,不会(也不会)更改。另一方面,字典提供了键值对的可变 1:1映射,因此可以更新它以添加或删除值。

答案 1 :(得分:4)

它比IDictionary简单得多。它由Linq使用。它只有ContainsItemCountIDictionaryAddRemove

答案 2 :(得分:0)

ILookUp => 按键分组,可枚举集合

单键值是指可枚举的集合,我们可以在其中迭代值集合。

IDictionary => 按不同键分组,单值