ILookup接口与IDictionary
ILookup<key, value>
接口如何与IDictionary<key, value>
?
我不明白ILookup
接口是什么意思。
ILookup
条目可以包含每个键的多个项目 – 每个键映射到一个IEnumerable<TElement>
。
同样,在评论中暗示,一个ILookup
是不可变的,而你可以更新IDictionary
中的IDictionary
(它暴露了一个Add()
方法和一个允许获取和设置值的索引器)。
总而言之,它们的用例是非常不同的 – 当你需要一个1:N的地图时,你可以使用一个查询,这个地图的值是固定的,不会(也不能)改变。 另一方面,字典提供了键值对的可变 1:1映射,因此可以更新以添加或删除值。
这比IDictionary
简单得多。 它被Linq使用。 它只有Contains
, Item
和Count
。 IDictionary
有Add
, Remove
等