我正在使用 IComparable 和 IComparer
在学生类中:[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-class 中使用 CompareTo(),我会遇到错误。
我想知道为什么我需要在我的主(学生)类中有一个 CompareTo(),它有什么作用?为什么我需要先比较 Student 类中的学生编号,然后才能在 StudentCompareName 类中对名称进行排序?