我想在两个(或可能更多)字典中执行“最大”运算,这将生成一个新字典,如下所示:
有没有办法使用Linq做到这一点?我只能想到遍历每本字典的所有键,而且感觉很丑。
此外,这感觉像Linq很有用。
答案 0 :(得分:6)
您可以将字典合并为一个查询,然后将其转换回字典。
var result = dictionaries.SelectMany(dict => dict)
.ToLookup(pair => pair.Key, pair => pair.Value)
.ToDictionary(g => g.Key, g => g.Max());