[この記事は18年前に書かれました]
自作クラスのリストのソートを行う方法の1つは、自作クラスにIComparableインタフェースを実装する方法があります。
具体的にはインスタンスを比較するCompareTo()メソッドを実装します。
using System.Collections.Generic; class Test : IComparable { private int num; public int Num { get { return num; } } public Test(int num) { this.num = num; } public int CompareTo(Test other) { return this.num.CompareTo(other.num); } } class Program { static void Main(string[] args) { List list = new List(); list.Add(new Test(8)); list.Add(new Test(5)); list.Add(new Test(1)); list.Add(new Test(3)); // ソート実行 list.Sort(); foreach (Test test in list) { Console.WriteLine(test.Num); } } }
出力:1 3 5 8
自作クラスの大小関係をCompareTo()メソッドに書いてあげるだけで ソート処理が可能になるというわけです。
関連記事
(※).NET Framework version 2.0新機能
コメント