1

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 クラスの名前で並べ替えることができるのはなぜですか?

4

3 に答える 3