自作クラスのリストのソート1(IComparableインタフェース)

C#

[この記事は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新機能
 

コメント

タイトルとURLをコピーしました