【发布时间】:2017-01-26 12:03:08
【问题描述】:
我正在尝试合并两个包含 n 个嵌套字典的字典。合并的行为需要采用重复的键并创建一个字典作为它的值。例如,合并这两个字典:
Data_X: {
Data_B: {
Data_C: "C",
}
}
Data_Z: {
Data_B: {
Data_F: "F",
}
}
我希望这个合并结果:
Data_A: {
Data_B: {
Data_C: "C",
Data_F: "F",
}
}
似乎找不到任何解决方案,它不仅将“值”用于“F”或“C”,而是将下一个字典添加到“Data_B”的“值”属性中
到目前为止,这是我采用第一个“价值”而不是创建一个新价值的地方,但这并不完全正确:
Dictionary<string, object>[] dictionaries = new Dictionary<string, object>[]
{
(Dictionary<string, object>)dictX,
(Dictionary<string, object>)dictZ
};
var result = dictionaries.SelectMany(dict => dict)
.ToLookup(pair => pair.Key, pair => pair.Value)
.ToDictionary(group => group.Key, group => group.First());
【问题讨论】:
标签: c# linq dictionary