次のPythonの最小/最大コードのC#と同等のものは何ですか?
pairs = [ (2,"dog"), (1, "cat"), (3, "dragon"), (1, "tiger") ]
# Returns the PAIR (not the number) that minimizes on pair[0]
min_pair = min(pairs, key=lambda pair:pair[0])
# this will return (1, 'cat'), NOT 1
C#のEnumerable.Minは非常に近いようです。ただし、MSDNのドキュメントによると、常に最小化値を返します(元のオブジェクトではありません)。私は何かが足りないのですか?
編集
注意してください-ソート(O(nlogn))は最小値(O(n))を見つけるよりも計算が重いため、最初にソートすることでこれを達成する傾向はありません。
また、注意してください-辞書も望ましいアプローチではありません。キーが重複している場合((1、 "cat")と(1、 "tiger")は処理できません。
さらに重要なことに、ディクショナリは、処理されるアイテムが複雑なクラスである場合を処理できません。たとえば、年齢をキーとして使用して、動物オブジェクトのリストから最小値を見つけます。
class Animal
{
public string name;
public int age;
}