C#加入字典,并提供其他信息
我加入简单字典没有问题,这段代码很好:C#加入字典,并提供其他信息,c#,dictionary,join,C#,Dictionary,Join,我加入简单字典没有问题,这段代码很好: Dictionary<string, int> lala01 = new Dictionary<string, int>(); lala01.Add("A", 5); lala01.Add("B", 2); lala01.Add("C", 8); Dictionary<string, int> lala02 = new Dictionary
Dictionary<string, int> lala01 = new Dictionary<string, int>();
lala01.Add("A", 5);
lala01.Add("B", 2);
lala01.Add("C", 8);
Dictionary<string, int> lala02 = new Dictionary<string, int>();
lala02.Add("A", 1);
lala02.Add("B", 9);
lala02.Add("X", 4);
Dictionary<string, int> lala03 = new Dictionary<string, int>();
lala03.Add("A", 7);
lala03.Add("C", 4);
lala03.Add("X", 1);
lala03.Add("Q", 2);
List<Dictionary<string, int>> dictionaries = new List<Dictionary<string, int>>();
dictionaries.Add(lala01);
dictionaries.Add(lala02);
dictionaries.Add(lala03);
var result = dictionaries.SelectMany(dict => dict)
.ToLookup(pair => pair.Key, pair => pair.Value)
.ToDictionary(group => group.Key, group => group.Max());
我应该编写什么代码来只包含具有最大整数的keyvaluepair?如果您只需要max by value对,您可能正在寻找类似MaxBy(从)的东西 如果不能使用更多linq,可以先使用
命令执行OrderBy
var result = dictionaries.SelectMany(dict => dict)
.ToLookup(pair => pair.Key, pair => pair.Value)
.ToDictionary(group => group.Key, group => group.OrderByDescending(v=> v.Key).First());
如果按键排序,则这是答案!非常感谢。
var result = dictionaries.SelectMany(dict => dict)
.ToLookup(pair => pair.Key, pair => pair.Value);
//Basically I am clueless here .ToDictionary(group => group.Key, group => group.Select(x => x).Max(x => x.Key));
var result = dictionaries.SelectMany(dict => dict)
.ToLookup(pair => pair.Key, pair => pair.Value)
.ToDictionary(group => group.Key, group => group.MaxBy(v=> v.Key));
var result = dictionaries.SelectMany(dict => dict)
.ToLookup(pair => pair.Key, pair => pair.Value)
.ToDictionary(group => group.Key, group => group.OrderByDescending(v=> v.Key).First());