c# – 如何使用LINQ查找词典列表中每个键的最大值?
发布时间:2020-12-15 08:14:59 所属栏目:百科 来源:网络整理
导读:我有一个字典列表,其中包含字符串类型和值为int的键. 许多词典中都有相同的键,但不是全部. 所以我的问题是:使用LINQ如何在所有字典中找到与每个不同键相关联的最大值? 例如,给出以下输入: var data = new ListDictionarystring,int{ new Dictionarystring
我有一个字典列表,其中包含字符串类型和值为int的键.
许多词典中都有相同的键,但不是全部. 所以我的问题是:使用LINQ如何在所有字典中找到与每个不同键相关联的最大值? 例如,给出以下输入: var data = new List<Dictionary<string,int>> { new Dictionary<string,int> {{"alpha",4},{"gorilla",2},{"gamma",3}},new Dictionary<string,1},{"beta",3},1}},int> {{"monkey",2}},}; 我想要某种包含以下内容的集合: {"alpha",{"monkey",2} (我现在正在遍历列表并自己跟踪事物,真的只是想知道是否有更好的LINQ式方式) 编辑:我也不知道字符串键是什么提前 解决方法var results = data.SelectMany(d => d) .GroupBy(d => d.Key) .Select(g => new { GroupName = g.Key,MaxValue = g.Max(i => i.Value) }); 并测试以上,使用此 foreach (var item in results) { Console.WriteLine(item); } 获得以下输出… { GroupName = alpha,MaxValue = 4 } { GroupName = gorilla,MaxValue = 2 } { GroupName = gamma,MaxValue = 3 } { GroupName = beta,MaxValue = 3 } { GroupName = monkey,MaxValue = 2 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |