gpt4 book ai didi

c# - 如何从分组元素创建字典?

转载 作者:太空宇宙 更新时间:2023-11-03 17:30:38 26 4
gpt4 key购买 nike

我有一个列表,其中包含我想按属性值分组的元素。稍后我想创建一个字典,其中键是我用来分组的这个值,值是每个组的元素列表(或 IEnumerable)。

我正在尝试这样的事情:

Dictionary<long, Ienumerable<MyType>> dic = lstWithElements.GroupBy(x=>x.ID).ToDictionary(x=>x.????)

但是在 ToDictionary 方法中我没有 ID 属性。那么,如何使用分组的项目创建我的字典?

最佳答案

GroupBy 的过载that you're using返回 IEnumerable<IGrouping<long, MyType>> . IGrouping<long, MyType> 提供一个 Key类型属性 long , 表示元素分组所依据的投影值,并且还实现了 IEnumerable<MyType> .

从本质上讲,您需要的是:

var dic = lstWithElements.GroupBy(x => x.ID).ToDictionary(x => x.Key);

注意:正如评论中所指出的,这会产生一个 IDictionary<long, IGrouping<long, MyType>> .这不是真正的问题,只要您只是从字典中检索 元素,而不是尝试添加新的 IEnumerable<MyType>。稍后(这似乎不太可能)。如果你确实需要一个 IDictionary<long, IEnumerable<long, MyType>> ,使用 this answer 中概述的代码.

关于c# - 如何从分组元素创建字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32997938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com