*[Cs]川俣さんの本を参考にして、ラムダ式を書いてみました。
コマンドライン引数がない場合は、正順にソートされ、
コマンドライン引数がある場合は、逆順にソートされます。
Word[] words = { new Word( "dog", "いぬ", 0), new Word( "cat", "ねこ", 44), new Word( "rat", "ねずみ", 33) }; Array.Sort(words, (x, y) => (x.Score - y.Score) * (args.Length > 0 ? -1 : 1)); foreach (Word word in words) { Console.WriteLine("{0} {1} {2}" , word.Score, word.Eng, word.Jpn); }
次の部分がラムダ式です。
(x, y) => (x.Score - y.Score) * (args.Length > 0 ? -1 : 1)