C# 将iGroup转换为IDictionary
作为数据库查询的结果,我有以下分组:C# 将iGroup转换为IDictionary,c#,linq,dictionary,group-by,C#,Linq,Dictionary,Group By,作为数据库查询的结果,我有以下分组: 5: Key1 3: Key2, Key3, Key4 2: Key5 1: Key6, Key7 我希望通过groupings键将顶部的x(而x是用户定义的)作为字典 我想要一本字典 Key1: 5 Key2: 3 Key3: 3 Key4: 3 Key5: 2 我想要排名前二的 Key1: 5 Key2: 3 Key3: 3 Key4: 3 仅限前1名 Key1: 5 如何将I分组转换为I词典。 注意:键是唯一的。首先,通过调用Take获得“前N
5: Key1
3: Key2, Key3, Key4
2: Key5
1: Key6, Key7
我希望通过groupings键将顶部的x(而x
是用户定义的)作为字典
我想要一本字典
Key1: 5
Key2: 3
Key3: 3
Key4: 3
Key5: 2
我想要排名前二的
Key1: 5
Key2: 3
Key3: 3
Key4: 3
仅限前1名
Key1: 5
如何将I分组
转换为I词典
。
注意:键是唯一的。首先,通过调用Take
获得“前N个”组:
groups.Take(n)
然后展平为值键对列表
.SelectMany(g => g, (g, k) => new {Value = g.Key, Key = k})
然后只需调用ToDictionary
:
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
你能解释一下“前三名”是什么意思吗?您的意思是要根据数据库中的前N个结果创建词典?我希望前3个结果与分组的键(如果该键有多个匹配键,则可能不止3个)完全不同,这正是我要查找的。谢谢