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

最佳答案

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

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

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

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

一种过于简化的看待方式是 Lookup<TKey,TValue> 大致相当于 Dictionary<TKey,IEnumerable<TValue>>

关于c# - LINQ ToDictionary 和 ToLookup 有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5659066/

10-13 06:46