読者です 読者をやめる 読者になる 読者になる

構造体のソート

List<T>.Sort メソッドで、リストに格納した構造体をソートします。

using System;
using System.Collections.Generic;

struct Lang {
    public string name;
    public string developer;

    public Lang(string name, string developer) {
        this.name = name;
        this.developer = developer;
    }
}

class TestSort {
    static void Main() {
        var ls = new List<Lang>();
        ls.Add(new Lang("C#", "アンダース・ヘルスバーグ"));
        ls.Add(new Lang("Python", "グイド・ヴァンロッサム"));
        ls.Add(new Lang("C++", "ビャーネ・ストラウストラップ"));

        foreach (var lang in ls) {
            Console.WriteLine("{0} {1}", lang.name, lang.developer);
        }

        ls.Sort((a, b) => a.name.CompareTo(b.name));

        Console.WriteLine("sort:");
        foreach (var lang in ls) {
            Console.WriteLine("{0} {1}", lang.name, lang.developer);
        }
    }
}

実行結果です。

C# アンダース・ヘルスバーグ
Python グイド・ヴァンロッサム
C++ ビャーネ・ストラウストラップ
sort:
C# アンダース・ヘルスバーグ
C++ ビャーネ・ストラウストラップ
Python グイド・ヴァンロッサム