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

配列要素を降順で並べ替えるC#プログラム


はじめに

C#でシーケンス内の要素を降順に並べ替えるには、LINQのOrderByDescending()メソッドとThenBy()メソッドを組み合わせて使用します。OrderByDescending()で主となる条件による降順ソートを行い、ThenBy()で第二ソート条件を指定することで、より柔軟な並べ替えが可能になります。

対象となる文字列配列

まず、並べ替えの対象となる文字列配列を用意します。

string[] myStr = { "Keyboard", "Laptop", "Mouse", "Monitor" };

降順ソートの実装方法

続いて、OrderByDescending()を使って要素を降順に並べ替えます。このとき、各文字列の長さを基準として計算し、ラムダ式を用いて簡潔に記述します。

IEnumerable<string> res = myStr.AsQueryable().OrderByDescending(ch => ch.Length).ThenBy(ch => ch);

ここでは ch => ch.Length によって各文字列の文字数を取得し、その長さに基づいて降順にソートしています。さらに ThenBy(ch => ch) を加えることで、長さが同じ要素がある場合には文字列自体(アルファベット順)で比較され、結果全体が整然と並びます。

サンプルコード

以下は、これまで説明した内容をまとめた完全なプログラム例です。

using System;
using System.Linq;
using System.Collections.Generic;
public class Demo {
    public static void Main() {
        string[] myStr = { "Keyboard", "Laptop", "Mouse", "Monitor" };
        IEnumerable<string> res = myStr.AsQueryable().OrderByDescending(ch => ch.Length).ThenBy(ch => ch);
        foreach (string arr in res)
        Console.WriteLine(arr);
    }
}

実行結果

Keyboard
Monitor
Laptop
Mouse

出力結果を見ると、文字数が多い順(8文字 → 7文字 → 6文字 → 5文字)に並んでいることが確認できます。このように、OrderByDescending()とThenBy()を組み合わせることで、複数の条件を用いた柔軟な降順ソートを簡単に実現できます。

  1. 【Python入門】リスト(配列)の要素を昇順に並べ替える方法|sortメソッドの使い方

    Pythonでリスト(配列)の要素を昇順に並べ替えたい場合は、sortメソッドを使います。sortメソッドはデフォルトで昇順にソートしてくれるため、引数を指定しなくても簡単に並べ替えが可能です。また、降順に並べ替えたい場合は、reverseパラメータにTrueを指定するだけで対応できます。以下に具体的な使用例を示します。サンプルコードmy_list = [44, 56, 42, 31, 11, 23, 78, 89, 9, 0] print(The list is :) print(my_list) my_list.sort() print(The list after sorting is

  2. Pythonで配列(リスト)の要素を逆順に出力するプログラム

    Pythonでリストの要素を逆順に出力したい場合、リストを末尾から先頭へ向かって反復処理することで実現できます。range() 関数に開始位置・終了位置・ステップを指定すれば、簡単に逆順のループを作成可能です。 サンプルコード my_list = [21, 32, 43, 54, 75] print(元のリスト : ) for i in range(0, len(my_list)): print(my_list[i]) print(逆順にした後のリスト : ) for i in range(len(my_list)-1, -1, -1): print(my_list[i]) 出