ILookup接口与IDictionary

ILookup<key, value>接口如何与IDictionary<key, value>

我不明白ILookup接口是什么意思。

ILookup条目可以包含每个键的多个项目 – 每个键映射到一个IEnumerable<TElement>

同样,在评论中暗示,一个ILookup是不可变的,而你可以更新IDictionary中的IDictionary (它暴露了一个Add()方法和一个允许获取设置值的索引器)。

总而言之,它们的用例是非常不同的 – 当你需要一个1:N的地图时,你可以使用一个查询,这个地图的值是固定的,不会(也不能)改变。 另一方面,字典提供了键值对的可变 1:1映射,因此可以更新以添加或删除值。

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