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

配列(Array)を降順でソートする方法は、4つあります。
Array.Sort() + Array.Reverse()
1つ目は、Array.Sort()と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);
}
}
}

Array.Sort() + delegate
2つ目は、Array.Sort()と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);
}
}
}
Array.Sort() + Comparison()
3つ目は、Array.Sort()と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);
}
}
}
OrderByDescendingOrder()
4つ目は、System.LinqのOrdeByDescending()を使います。
まず、Linqを導入します。
using System.Linq;
次に、配列からOrderByDescending()を呼び出し、引数にラムダ式を指定します。
ラムダ式では、引数を返します。
そして、OrderByDescending()からToArray()を呼び出し、配列に代入します。
array = array.OrderByDescending(a => a).ToArray();
ここまでの処理で、配列が降順にソートされます。
使用例
using System;
using System.Linq;
public class Example
{
public static void Main()
{
int[] numbers = new int[7] { 3, 1, 5, 7, 2, 6, 4, };
numbers = numbers.OrderByDescending(a => a).ToArray();
foreach (var i in numbers)
{
Console.WriteLine(i);
}
}
}
まとめ
配列(Array)を降順にソートする方法は、次の4つです。
- Array.Sort()とArray.Reverse()を使う方法
- Array.Sort()とdelegateを使う方法
- Array.Sort()とComparison()を使う方法
- System.LinqのOrderByDescending()を使う方法
コメント