###前提・実現したいこと
Sortメソッドの引数に並び替え順序を定義したメソッドを表すComparison<T>デリゲートを指定すると、
その順序に従ってソートするらしいですが、
この並び替え順序を定義したメソッドが、どのように並び替えを定義しているのかわかりません。
具体的には、下記CompareDescending内において、
何故、return y - x だと降順になって、
何故、return x - y だと昇順になるのかがわかりません。
また、CompareDescending内でreturn x - yを返す時、x,yの出力をとると、
x:5, y:3
x:3, y:4
x:3, y:1
x:2, y:3
x:3, y:3
x:3, y:3
x:5, y:3
x:3, y:2
x:1, y:1
x:1, y:2
x:5, y:5
x:5, y:4
となる理由もわかりません。
同様に、return y - xを返す時のx,yの出力結果もわかりません。
x:5, y:3
x:2, y:3
x:3, y:4
x:3, y:3
x:3, y:1
x:3, y:3
x:1, y:3
(以下省略)
ご教授のほど宜しくお願い致します。
###該当のソースコード
class Sample {
// 二つのintを比較するためのメソッド
static int CompareDescending(int x, int y)
{
//降順の場合。
//return y - x;
//昇順の場合。 //return x - y;
}
static void Main()
{
// ソート対象のList<int>
List<int> list = new List<int>(new int[] {5, 2, 3, 1, 4});
// ソート list.Sort(CompareDescending); foreach (int val in list) { Console.Write("{0}, ", val); } Console.WriteLine();
}
}
###試したこと 実際、試して結果がその通りになるのは確認しましたが、 なぜ、そのようになるのかがわかりません。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/10/29 12:33
2017/10/29 16:02
退会済みユーザー
2017/10/30 00:11
2017/10/30 01:22
退会済みユーザー
2017/10/30 10:47