IComparable と IComparer を使用しています
Student クラスの場合:[IComparable]
public int CompareTo(Student studentToCompare)
{
if (this.Number < studentToCompare.Number)
return 1;
else if (this.Number > studentToCompare.Number)
return -1;
else
return 0;
}
StudentCompareName クラス: [IComparer]
public int Compare(Student x, Student y)
{
return string.Compare(x.Name, y.Name);
}
Compare(Student x, Student y) を使用して、学生のリストを名前で並べ替えています。
Student クラスで CompareTo() を使用しないと、エラーが発生します。
メイン (Student) クラスに CompareTo() が必要な理由と、それは何をするのだろうか? 最初に Student クラスの学生番号を比較する必要があり、その後 StudentCompareName クラスの名前で並べ替えることができるのはなぜですか?