どうも、ちょげ(@chogetarou)です。
配列をArray.Sort()を使って、降順にソートする方法を紹介します。
方法

配列をArray.Sort()で降順にソートする方法は、3つあります。
Array.Reverse()
1つ目は、Array.Reverse()を使う方法です。
まず、Array.Sort()を呼び出します。
Array.Sort()の引数に配列を指定します。
そして、Array.Reverse()を呼び出し、引数に配列を指定します。
Array.Sort(array);
Array.Reverse(array);
Array.Sort()との後にArray.Reverse()を呼び出すことで、配列を降順でソートできます。
使用例
using System;
public class Example
{
public static void Main()
{
int[] numbers = new int[7] { 3, 1, 5, 7, 2, 6, 4, };
Array.Sort(numbers);
Array.Reverse(numbers);
foreach (var i in numbers) {
Console.WriteLine(i);
}
}
}

delegate
2つ目は、delegate()を使う方法です。
まず、Array.Sort()を呼び出します。
Array.Sort()の第1引数に配列、第2引数に引数を2つ持つdelegate(a, b){}を指定します。
そして、delegate(a, b){}で第2引数を第1引数で引く式を返します。
Array.Sort(array, delegate(int a, int b) { return b - a; });
上記のArray.Sort()は、配列を降順でソートします。
使用例
using System;
public class Example
{
public static void Main()
{
int[] numbers = new int[7] { 3, 1, 5, 7, 2, 6, 4, };
Array.Sort(numbers, delegate(int x, int y) { return y - x; });
foreach (var i in numbers) {
Console.WriteLine(i);
}
}
}
Comparison()
3つ目は、Comparison()を使う方法です。
まず、Array.Sort()を呼び出します。
そして、Array.Sort()の第1引数に配列、第2引数に「new Comparison((a, b) => b.CompareTo(a))」を指定します。
Array.Sort(array, new Comparison<int>((a, b) => b.CompareTo(a)));
上記のArray.Sort()は、配列を降順でソートします。
使用例
using System;
public class Example
{
public static void Main()
{
int[] numbers = new int[7] { 3, 1, 5, 7, 2, 6, 4, };
Array.Sort(numbers, new Comparison<int>((a, b) => b.CompareTo(a)));
foreach (var i in numbers) {
Console.WriteLine(i);
}
}
}
まとめ
配列をArray.Sort()で降順にソートする方法は、次の3つです。
- Array.Reverse()を使う方法
- delegateを使う方法
- Comparison()を使う方法
コメント