6
私は、string型のキーとint型の値を持つ辞書のListを持っています。LINQを使用して辞書の一覧の各キーの最大値を調べる方法は?
辞書の多くは同じキーを持ちますが、すべてが同じではありません。
私の質問は:LINQを使用すると、どのようにすべての辞書の各キーに関連付けられた最大値を見つけることができますか?
{"alpha", 4},
{"gorilla", 2},
{"gamma", 3},
{"beta", 3},
{"monkey", 2}
は(私は現在、リストをループして物事を追跡しています:私は含まれているコレクションのいくつかの種類をしたいと思い
var data = new List<Dictionary<string, int>>
{
new Dictionary<string, int> {{"alpha", 4}, {"gorilla", 2}, {"gamma", 3}},
new Dictionary<string, int> {{"alpha", 1}, {"beta", 3}, {"gamma", 1}},
new Dictionary<string, int> {{"monkey", 2}, {"beta", 2}, {"gamma", 2}},
};
次の入力与え例えばので
私自身、実際にそれを行うのにもっと良いLINQ風の方法があるかどうか疑問に思っています)
EDIT:文字列キーがあらかじめわかっています
マーベラス!なぜあなたはそれを見るといつも分かりますか:-) – Argos
もちろん、同じことをする他の多くの方法があります: 'data.SelectMany(d => d).GroupBy(d => d.Key、d => d.Value、(k、i)=> new {GroupName = k、MaxValue = i.Max()}) 'または' from d from data.SelectMany(i => i) グループd.Value by d .Key into g select new {GroupName = g.Key、MaxValue = g.Max()} 'は2つあります。 –