我有以下分组作为数据库查询的结果:
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>
。
注意:密钥是唯一的。
答案 0 :(得分:5)
首先,您可以致电[[1, 1], [1, 1], [1, 1, 1]]
:
Take
然后展平为价值密钥对列表
groups.Take(n)
然后只需致电 .SelectMany(g => g, (g, k) => new {Value = g.Key, Key = k})
:
ToDictionary