C#
 Computer >> コンピューター >  >> プログラミング >> C#

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の活用が適しています。用途に応じて使い分けてみてください。

  1. JavaでArrayList(配列リスト)を昇順にソートするプログラムの書き方

    この記事では、Javaを使ってArrayList(配列リスト)の要素を昇順にソートする方法を解説します。 リストとは、要素を順番に格納し、先頭から順にアクセスできる「順序付きコレクション」のことです。インデックスを指定して要素を挿入・更新・削除・検索するためのメソッドが用意されており、重複した要素を保持することもできます。 ソートの実行例 まず、今回作成するプログラムの動作イメージを確認しておきましょう。 入力: 入力リスト:[java, coding, is, fun] 出力: ソート後のリスト:[coding, fun, is, java] アルゴリズム 昇順ソートは、java.util.

  2. 【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