LINQ ToDictionary与ToLookup有什么区别?他们似乎做同样的事情。
答案 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,但枚举保留在内存中。