C# で配列を降順で並べ替える

Minahil Noor 2024年2月16日
  1. C# で Array.Sort() および Array.Reverse() メソッドを使用して配列を降順で並べ替える
  2. C# で OrderByDescending() メソッドを使用して配列を降順で並べ替える
C# で配列を降順で並べ替える

この記事では、C# で配列を降順で並べ替えるさまざまな方法を紹介します。

C# で Array.Sort() および Array.Reverse() メソッドを使用して配列を降順で並べ替える

2つのメソッド Array.sort()Array.Reverse() をまとめて、配列を降順で並べ替えます。Array.Sort() メソッドは、配列を昇順で並べ替えます。Array.Reverse() メソッドを使用して配列を反転し、配列を降順で並べ替えます。これらのメソッドには複数のオーバーロードがあります。これらのメソッドを使用するための正しい構文は次のとおりです。

Array.Sort(Array array);

メソッド Sort() のこのオーバーロードには、パラメータが 1つだけあります。パラメータの詳細は以下のとおりです

パラメーター 説明
array 必須 これは、並べ替える配列です。

この関数は、配列を昇順でソートします。

Array.Reverse(Array array);

メソッド Reverse() のこのオーバーロードには、1つのパラメーターしかありません。パラメータの詳細は以下のとおりです。

パラメーター 説明
array 必須 これは、逆にしたい配列です。

この関数は、指定された配列を逆にします。

以下のプログラムは、Sort() および Reverse() メソッドを使用して配列を降順で並べ替える方法を示しています。

using System;

class Sort {
  public static void Main() {
    int[] arr = new int[] { 2, 10, 5, 8, 4, 11 };
    Console.WriteLine("Array Before Sorting:\n");
    foreach (int value in arr) {
      Console.Write(value + " ");
    }
    Console.WriteLine("\n");
    Array.Sort(arr);
    Array.Reverse(arr);
    Console.WriteLine("Array After Sorting:\n");
    foreach (int value in arr) {
      Console.Write(value + " ");
    }
  }
}

出力:

Array Before Sorting:

2 10 5 8 4 11 

Array After Sorting:

11 10 8 5 4 2 

C# で OrderByDescending() メソッドを使用して配列を降順で並べ替える

C# では、LINQ の OrderByDescending() メソッドを使用することもできます。配列を降順で並べ替えます。このメソッドには複数のオーバーロードがあります。使用するオーバーロードには 2つのパラメーターがあります。このメソッドを使用するための正しい構文は次のとおりです。

Array.OrderByDescending(source, keySelector);

パラメータの詳細は以下のとおりです。

パラメーター 説明
source 注文する値のシーケンスです。
keySelector 要素からキーを抽出する機能です。

この関数は配列をソートし、IOrderedEnumerable を返します。ToArray() メソッドを使用して配列に変換します。

以下のプログラムは、OrderByDescending() メソッドを使用して配列を降順で並べ替える方法を示しています。

using System;
using System.Linq;

class Sort {
  public static void Main() {
    int[] arr = new int[] { 2, 10, 5, 8, 4, 11 };
    Console.WriteLine("Array Before Sorting:\n");
    foreach (int value in arr) {
      Console.Write(value + " ");
    }
    Console.WriteLine("\n");
    arr = arr.OrderByDescending(c => c).ToArray();
    Console.WriteLine("Array After Sorting:\n");
    foreach (int value in arr) {
      Console.Write(value + " ");
    }
  }
}

出力:

Array Before Sorting:

2 10 5 8 4 11 

Array After Sorting:

11 10 8 5 4 2

関連記事 - Csharp Array