C#で配列を降順にソートする方法
C#では、標準ライブラリのArray.Sort()メソッドとComparison<T>デリゲートを組み合わせることで、配列を簡単に降順(大きい値から小さい値の順)に並べ替えることができます。この記事では、その具体的な実装方法をサンプルコード付きで解説します。
1. 配列の宣言と初期化
まず、ソート対象となる整数型の配列を宣言し、初期化します。
int[] arr = new int[] {
87,
23,
65,
29,
67
};
2. 降順ソートの実装
降順でソートするには、Array.Sort()メソッドの第2引数にComparison<T>デリゲートを渡し、ラムダ式の中でCompareTo()を使って要素同士を比較します。ポイントは、第2引数から第1引数に対してCompareTo()を呼び出すことです。これにより、通常の昇順ソートとは逆の比較結果が得られ、配列が降順に並べ替えられます。
Array.Sort<int>(arr, new Comparison<int>((val1, val2) => val2.CompareTo(val1)));
val2.CompareTo(val1)のように引数の順序を入れ替えることで、大きい値が先頭に来るようになります。逆にval1.CompareTo(val2)と書けば、通常どおりの昇順ソートとなります。
3. 完全なサンプルコード
using System;
using System.Collections.Generic;
using System.Text;
public class Demo {
public static void Main(string[] args) {
int[] arr = new int[] {
87,
23,
65,
29,
67
};
// 初期配列を表示
Console.WriteLine("初期配列...");
foreach(int items in arr) {
Console.WriteLine(items);
}
// 降順にソート
Array.Sort<int>(arr, new Comparison<int>((val1, val2) => val2.CompareTo(val1)));
// ソート後の配列を表示
Console.WriteLine("降順にソートした配列...");
foreach(int items in arr) {
Console.WriteLine(items);
}
}
}
4. 実行結果
初期配列... 87 23 65 29 67 降順にソートした配列... 87 67 65 29 23
まとめ
このように、Array.Sort()にComparison<T>デリゲートを渡すだけで、独自のソートアルゴリズムを実装することなく降順ソートが実現できます。LINQのOrderByDescending()を使う方法もありますが、元の配列そのものを並べ替えたい場合は、ここで紹介した方法がシンプルで効率的です。
-
C#で配列を反転する方法|Array.Reverseの使い方を解説
C#で配列の要素の並びを逆にしたい場合は、Array.Reverseメソッドを使うのが最も簡単です。この記事では、元の配列の準備から反転処理、実行結果までをわかりやすく解説します。 1. 元の配列を用意する まず、反転対象となる元の配列を定義し、その内容をコンソールに表示してみましょう。 int[] arr = { 1, 2, 3 }; // 元の配列を表示 Console.WriteLine(Original Array= ); foreach (int i in arr) { Console.WriteLine(i); } 2. Array.Reverse()で配列を反転する 配
-
【Python入門】リストの要素を降順に並べ替える方法をわかりやすく解説
Pythonでは、リスト(配列)の要素を降順に並べ替えたい場合、sort()メソッドを使い、引数reverseにTrueを指定するだけで簡単に実現できます。 サンプルコード my_list = [44, 56, 42, 31, 11, 23, 78, 89, 9, 0] print(元のリスト:) print(my_list) my_list.sort(reverse = True) print(降順にソートした後のリスト:) print(my_list) 実行結果 元のリスト: [44, 56, 42, 31, 11, 23, 78, 89, 9, 0] 降順にソートした後のリスト: [89