C#のLinqで配列の並べ替え

C# コンピュータ
C#

データベースのSQLを学習した際、ソートが簡潔に記述出来て驚いた記憶があります。Linqを使うとC#の配列をSQLのソートの様に簡潔に記述することが出来るようなので試してみました。

昇順で並べ替え

class Program
{
    static void Main()
    {
        byte[] byteArray = {5, 3, 9};

        var s = byteArray.OrderBy(a=>a);

        Console.WriteLine("result:{0}", String.Join(",", s));
    }
}

結果

result:3,5,9

昇順で並べ替え

class Program
{
    static void Main()
    {
        byte[] byteArray = {5, 3, 9};

        var s = byteArray.OrderByDescending(a=>a);

        Console.WriteLine("result:{0}", String.Join(",", s));
    }
}

結果

result:9,5,3

ソートキー

byte配列の場合キー項目はOrderBy(a=>a)という形ですが、一般的にはオブジェクトのプロパティを
指定します。(例:OrderBy(a=>a.size))
第二キー以降を指定する場合はOrderBy()に続けてThenBy()またはThenByDescending()で指定します。

コメント