LINQ ToDictionary 和 ToLookup 之间有什么区别

发布于 2024-11-01 14:48:58 字数 55 浏览 0 评论 0 原文

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

What is the difference between LINQ ToDictionary and ToLookup? They seem to do the same thing.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

救星 2024-11-08 14:48:58

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

查找是一对多映射(多重映射;每个键都映射到具有该键的值的 IEnumerable),并且 ILookup< 上没有变异。 ,>界面。

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

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

一种过于简化的看待方式是,Lookup大致相当于 Dictionary>< /代码>

A dictionary is a 1:1 map (each key is mapped to a single value), and a dictionary is mutable (editable) after the fact.

A lookup is a 1:many map (multi-map; each key is mapped to an IEnumerable<> of the values with that key), and there is no mutate on the ILookup<,> interface.

As a side note, you can query a lookup (via the indexer) on a key that doesn't exist, and you'll get an empty sequence. Do the same with a dictionary and you'll get an exception.

So: how many records share each key?

An overly simplified way of looking at it is that a Lookup<TKey,TValue> is roughly comparable to a Dictionary<TKey,IEnumerable<TValue>>

太阳公公是暖光 2024-11-08 14:48:58

ToDictionary 是 而 ToLookup与 IGrouping 类似,但枚举保留在内存中。

ToDictionary is <TKey, TValue> while ToLookup<TKey, T1, T2, T3, ...> is is similar to IGrouping but enumeration stays in memory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文