Fun Coding

学んだことを記録していきます!

【C#】リストの要素を昇順にソートする方法(Sort)

リストの要素を昇順にソートする方法の1つに「Sort」メソッドがあります。
サンプルコードを交えて解説したいと思います。

説明

リストの要素を比較メソッドに従ってソートする。

ポイント

・変換されたリストを返さない。
・比較メソッドがない場合は昇順にソートされる。
・先行評価される。


変換されたリストを返して同様のことを行いたい場合は「OrderBy」を使います。
funcording.hatenablog.com

コード
using System;
using System.Collections.Generic;

namespace Sample {
    /// <summary>
    /// メインプログラム
    /// </summary>
    public class Program {
        /// <summary>
        /// Sortの使い方
        /// </summary>
        static void Main() {
            // リストを生成
            var list = new List<int>();

            // リストに値を追加
            list.Add(10);
            list.Add(1);
            list.Add(0);
            list.Add(3);
            list.Add(7);
            list.Add(5);

            // 比較メソッドがない場合
            var list1 = new List<int>(list);
            list1.Sort();
            Console.WriteLine("比較メソッドなし : " + string.Join(", ", list1));

            // 比較メソッドがある場合
            var list2 = new List<int>(list);
            list2.Sort((a, b) => a - b);
            Console.WriteLine("比較メソッドあり : " + string.Join(", ", list2));
        }
    }
}
出力
比較メソッドなし : 0, 1, 3, 5, 7, 10
比較メソッドあり : 0, 1, 3, 5, 7, 10