Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将iGroup转换为IDictionary_C#_Linq_Dictionary_Group By - Fatal编程技术网

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个)完全不同,这正是我要查找的。谢谢