c# - LINQ ToDictionary 和 ToLookup 有什么区别

标签 c# linq

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

最佳答案

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

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

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

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

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

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

相关文章:

c# - linq连接和计数

c# - 下载文件后如何从 azure blob 存储中删除文件

c# - 如何将控制反转 (IoC) 与 Azure 辅助角色结合使用

asp.net-mvc - 如何在 Onion 架构中使用来自 Kendo UI 的 ToDataSourceResult 而不暴露 IQueryable

Linq All()/Any() 但不为空

c# - 如何分组列表并拆分每n条记录?

c# - 如何使用 HtmlAgilityPack 解析 <option> 标签的 InnerText?

c# - 在 Windows 窗体的 Web 浏览器控件中从 PDF 中获取选定的文本

c# - 将字符串拆分为字符串数组而不丢失文本顺序

c# - ASP :ListBox Get Selected Items - One Liner?