其中,类需要集成 IComparable接口 。
类内部需要实现 IComparable.CompareTo 方法。
需要实现 IComparer.Compare(object obj1, object obj2) 方法
public class student : IComparable
{
public int stuID { get; set; }
public string stuName { get; set; }
public car car1 { get; set; }
public student(int id, string name, car tmp)
{
stuID = id;
stuName = name;
car1 = tmp;
}
//实现比较器
int IComparable.CompareTo(object o)
{
student tmp = (student)o;
return string.Compare(stuName, tmp.stuName);
}
private class IDComparaterHelper : IComparer
{
int IComparer.Compare(object obj1, object obj2)
{
student s1 = (student)obj1;
student s2 = (student)obj2;
if (s1.stuID > s2.stuID)
{
return 1;
}
else if (s1.stuID == s2.stuID)
{
return 0;
}
else
{
return -1;
}
}
}
public static IComparer ImplIDCompare()
{
return (IComparer)new IDComparaterHelper();
}
}