タイプの辞書があります
Dictionary<int, GValue>
ここで、GValue は 2 つの double 値 P1 と P2 を含むオブジェクトです
次のコードを使用して辞書から最大値のキーを取得しようとしています
var keyForMaxP1 = dict.Keys.Aggregate((i, j) => dict[i].P1 >= dict[j].P1 ? i : j);
var keyForMaxP2 = dict.Keys.Aggregate((i, j) => dict[i].P2 >= dict[j].P2 ? i : j);
それは私に最大 P1 と P2 のキーを正しく与えます。
しかし、辞書に最大 P1 または P2 値を持つ複数のキーが含まれている場合はどうなりますか?? ここでも、辞書のトラバース中に最初に来る 1 つのキーを返します。
編集
ディクショナリに値 P1 があり、最大値が 3.52 であるとします。ディクショナリに値 P1 = 3.52 のエントリが 2 つある場合、この値に関連する両方のキーを取得したい