C#で配列を降順に並べ替える方法を解説
C#で配列を降順(大きい値から小さい値の順)に並べ替えるには、Array.Sort()メソッドとArray.Reverse()メソッドを組み合わせるのが最も基本的な方法です。
まず、次のようなソート前の配列を用意します。
int[] list = {98, 23, 97, 36, 77};
手順1:Array.Sort()で昇順にソートする
最初に、Array.Sort()メソッドを使って配列を昇順(小さい値から大きい値の順)に並べ替えます。
Array.Sort(list);
この時点で、配列の要素は「23 36 77 97 98」のように昇順に整列しています。
手順2:Array.Reverse()で要素の順序を反転する
続いて、Array.Reverse()メソッドを呼び出すと配列の要素が逆順になり、結果として降順にソートされた配列が得られます。
Array.Reverse(list);
サンプルコード
以下のコードを実行すると、配列を降順にソートする一連の流れを確認できます。
using System;
namespace Demo {
public class MyApplication {
public static void Main(string[] args) {
int[] list = {98, 23, 97, 36, 77};
Console.WriteLine("元の未ソートリスト");
foreach (int i in list) {
Console.Write(i + " ");
}
// 昇順にソート
Array.Sort(list);
// 降順になるよう反転
Array.Reverse(list);
Console.WriteLine("\nソート済みリスト");
for(int i=0; i<list.Length; i++) {
Console.Write(list[i] + " ");
}
}
}
}
実行結果
元の未ソートリスト 98 23 97 36 77 ソート済みリスト 98 97 77 36 23
補足:LINQを使った降順ソート
より簡潔に記述したい場合は、LINQのOrderByDescending()メソッドを使う方法も便利です。この方法なら元の配列を変更せず、新しい配列として結果を受け取ることができます。
using System;
using System.Linq;
int[] list = {98, 23, 97, 36, 77};
int[] sorted = list.OrderByDescending(x => x).ToArray();
// sorted の中身 → {98, 97, 77, 36, 23}
既存の配列を直接書き換えたい場合はArray.Sort()+Array.Reverse()の組み合わせ、元のデータを保持しつつ新しい結果が必要な場合はLINQの活用が適しています。用途に応じて使い分けてみてください。
-
JavaでArrayList(配列リスト)を昇順にソートするプログラムの書き方
この記事では、Javaを使ってArrayList(配列リスト)の要素を昇順にソートする方法を解説します。 リストとは、要素を順番に格納し、先頭から順にアクセスできる「順序付きコレクション」のことです。インデックスを指定して要素を挿入・更新・削除・検索するためのメソッドが用意されており、重複した要素を保持することもできます。 ソートの実行例 まず、今回作成するプログラムの動作イメージを確認しておきましょう。 入力: 入力リスト:[java, coding, is, fun] 出力: ソート後のリスト:[coding, fun, is, java] アルゴリズム 昇順ソートは、java.util.
-
【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