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

C#のorderby句とは?コレクションを昇順・降順に並べ替える方法を解説

C#のorderby句は、LINQクエリの中でコレクションの要素を、指定したフィールドや条件に基づいて並べ替えるために使用します。並べ替えの順序は昇順(ascending)または降順(descending)から選択でき、省略した場合は昇順が既定値となります。

サンプルデータの準備

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

List<string> myList = new List<string>();

// 要素の追加
myList.Add("iOS by Apple");
myList.Add("Android by Google");
myList.Add("Symbian by Nokia");

orderby句で降順に並べ替える

orderby句を使って、各要素を文字列の長さ(Length)を基準に降順へ並べ替えるには、次のように記述します。

var myLen = from element in myList
            orderby element.Length descending
            select element;

descendingキーワードを付けることで降順になります。逆に昇順にしたい場合は、ascendingを指定するか、単にorderby句のみを記述します。

完全なサンプルコード

using System;
using System.Collections.Generic;
using System.Linq;

class Demo {
    static void Main() {
        List<string> myList = new List<string>();
        myList.Add("iOS by Apple");
        myList.Add("Android by Google");
        myList.Add("Symbian by Nokia");

        var myLen = from element in myList
        orderby element.Length descending
        select element;
        Console.WriteLine("Descending order...");

        foreach (string str in myLen) {
            Console.WriteLine(str);
        }
    }
}

実行結果

Descending order...
Android by Google
Symbian by Nokia
iOS by Apple

このように、orderby句にelement.Length descendingを指定することで、文字列が長い順に要素が出力されました。数値プロパティだけでなく、文字列そのものや日付など、比較可能な任意のフィールドを基準に並べ替えられる点もorderby句の大きな特徴です。

  1. C#のKeyValuePairクラスでペア(キーと値の組み合わせ)を扱う方法

    C#では、2つの値をひと組の「ペア」として1つのリストに格納したい場合に、KeyValuePairクラスを利用します。KeyValuePairは、キー(Key)と値(Value)を関連付けて保持できるジェネリックな構造体であり、Listなどと組み合わせることで、柔軟かつ効率的なデータ管理が可能になります。 KeyValuePairの宣言方法 まず、KeyValuePair<string, int>型の要素を持つListを宣言します。 var myList = new List<KeyValuePair<string, int>>(); 要素の追加 続いて

  2. 【SQL Server入門】ORDER BY句の使い方を徹底解説!構文からASC/DESC・実例まで

    SQL ServerにおけるORDER BY句は、SELECT文が返す結果セットのレコードを並べ替える(ソートする)ために使用される句です。なお、ORDER BY句はSELECT文の中でのみ使用できます。 ORDER BY句の基本構文 SELECT 式 FROM テーブル [WHERE 条件] ORDER BY 式 [ASC | DESC]; 各要素の説明 式:取得したい列や計算値を指定します。 テーブル:レコードを取得したいテーブルです。FROM句には必ず1つ以上のテーブルを指定する必要があります。 WHERE 条件:省略可能です。レコードを選択するために満たすべき条件を指定します。 A