[この記事は18年前に書かれました]
自作クラスのリストのソートを行う方法の1つは、IComparerインタフェースを実装する comparerクラスを作成し、ソート時に指定する方法があります。
class Test { private int num; public int Num { get { return num; } } public Test(int num) { this.num = num; } } class TestComparer : IComparer { public int Compare(Test x, Test y) { return x.Num.CompareTo(y.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(new TestComparer()); foreach (Test test in list) { Console.WriteLine(test.Num); } } }
出力:1 3 5 8 この方法は、IComparableインタフェースを実装する方法と比べて Sort実行時に、comparerを指定するので自作クラスのソート方法を 切り替えられる利点があります。
関連記事
(※).NET Framework version 2.0新機能
コメント