Kin*_*sin 2 c# linq dictionary group-by
作为数据库查询的结果,我有以下分组:
5: Key1
3: Key2, Key3, Key4
2: Key5
1: Key6, Key7
Run Code Online (Sandbox Code Playgroud)
我想x通过分组键将顶部x(而用户定义)作为字典.
对于前三名,我想要一本词典
Key1: 5
Key2: 3
Key3: 3
Key4: 3
Key5: 2
Run Code Online (Sandbox Code Playgroud)
对于我想要的前2名
Key1: 5
Key2: 3
Key3: 3
Key4: 3
Run Code Online (Sandbox Code Playgroud)
并且仅限前1名
Key1: 5
Run Code Online (Sandbox Code Playgroud)
我怎样才能将其IGrouping<int, string>转换为IDictionary<string, int>.注意:密钥是唯一的.
首先,您可以通过以下方式获得"前N个"组Take:
groups.Take(n)
Run Code Online (Sandbox Code Playgroud)
然后展平为价值密钥对列表
.SelectMany(g => g, (g, k) => new {Value = g.Key, Key = k})
Run Code Online (Sandbox Code Playgroud)
然后打电话ToDictionary:
.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1865 次 |
| 最近记录: |