LINQ查询创建字典
本文关键字:字典 创建 查询 LINQ | 更新日期: 2023-09-27 18:00:51
我有以下模式:
ParentKey|Key|Value
1 A 3
1 B 5
1 C 6
2 A 4
2 D 8
我收到的是IQueryable<MyObject>
MyObject {
public int ParentKey{get;set;}
public String Key{get;set;}
public int Value{get;set;}
}
我想把它变成一个字典词典,其中ParentKey是父字典的键,key是子字典的键。我目前正在循环中进行此操作,但我想看看如何使用LINQ来完成此操作。
我保证特定父密钥中的密钥始终是唯一的,因此无需担心或检查重复的密钥。
如何编写一个LINQ查询,将这些数据转换为
Dictionary<int, Dictionary<string, int>>
您需要首先按ParentKey
对列表进行分组:
list.GroupBy(l => l.ParentKey)
.AsEnumerable() // to shift from IQueryable to IEnumerable and hydrate the results
.ToDictionary(g => g.Key, g => g.ToDictionary(gg => gg.Key, gg => gg.Value));