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


コメント