LINQ ToDictionary和ToLookup的区别是什么?

本文关键字:区别 是什么 ToLookup ToDictionary LINQ | 更新日期: 2023-09-27 17:50:14

LINQ ToDictionary和ToLookup有什么区别?

LINQ ToDictionary和ToLookup的区别是什么?

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

查找是1:many map (multi-map;每个键都映射到具有该键的值的IEnumerable<>),并且在ILookup<,>接口上没有变化。

作为旁注,您可以(通过索引器)查询不存在的键的查找,并且您将得到一个空序列。对字典做同样的操作,你会得到一个异常。

那么:每个键有多少记录共享?

一个过于简化的看待它的方法是Lookup<TKey,TValue> Dictionary<TKey,IEnumerable<TValue>>

大致相当

ToDictionary is <TKey,>而ToLookup

是类似于igrouing,但枚举保留在内存中。