![](/img/trans.png)
[英]Recommended way to convert IGrouping<TKey, TValue> to IDictionary<TKey, IEnumerable<TValue>>
[英]Convert IGrouping to IDictionary
由于数据库查询,我有以下分组:
5: Key1
3: Key2, Key3, Key4
2: Key5
1: Key6, Key7
我希望分组键的顶部x(而x
是用户定义的)作为字典。
对于前三名,我想要一本字典
Key1: 5
Key2: 3
Key3: 3
Key4: 3
Key5: 2
对于前2名,我想要
Key1: 5
Key2: 3
Key3: 3
Key4: 3
并且仅针对前1名
Key1: 5
如何将IGrouping<int, string>
转换为IDictionary<string, int>
。 注意:键是唯一的。
首先,您可以通过调用Take
获得“前N个”组:
groups.Take(n)
然后展平到值键对列表
.SelectMany(g => g, (g, k) => new {Value = g.Key, Key = k})
然后只需致电ToDictionary
:
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.