我有以下架构:
ParentKey |关键值
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));
关于c# - LINQ查询以创建字典词典,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23367511/