[この記事は19年前に書かれました]
自作クラスのリストのソートを行う方法の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新機能


コメント