LINQ ToDictionary和ToLookup有什么区别

时间:2011-04-14 05:47:03

标签: c# linq

LINQ ToDictionary与ToLookup有什么区别?他们似乎做同样的事情。

2 个答案:

答案 0 :(得分:159)

字典是1:1的映射(每个键映射到单个值),字典在事实之后是可变的(可编辑的)。

查找是1:多个映射(多映射;每个键映射到具有该键的值的IEnumerable<>),并且ILookup<,>接口上没有变异。 / p>

作为旁注,您可以在不存在的键上查询(通过索引器),并且您将获得一个空序列。用字典做同样的事情,你会得到一个例外。

那么:每个密钥共享多少条记录?

过于简化的方式是Lookup<TKey,TValue> 与<{1}}大致相似

答案 1 :(得分:-4)

ToDictionary是&lt; TKey,TValue&gt; ToLookup&lt; TKey,T1,T2,T3,...&gt;类似于IGrouping,但枚举保留在内存中。

相关问题