IComparable接口要实现CompareTo方法,并且一定要通过值可以排序的类型来实现,例如基本数值类型(整型等),或者字符串,看下面的代码可能易懂一点: public class Temperature : IComparable { protected double temperatureF;
public int CompareTo(object obj) { if(obj is Temperature) { Temperature otherTemperature = (Temperature) obj; return this.temperatureF.CompareTo(otherTemperature.temperatureF); } else { throw new ArgumentException("object is not a Temperature"); } } } IComparer接口其实是特定用于Array的Sort和BinarySearch方法以及为SortList提供自定义的排序规则,通过实现IComparer接口的Compare方法以确定Sort如何进行对对象进行排序。 而IComparable中的CompareTo 方法提供了一个默认的排序规则。SorList 只是将Key作为排序对象进行排序。
IComparable接口要实现CompareTo方法,并且一定要通过值可以排序的类型来实现,例如基本数值类型(整型等),或者字符串,看下面的代码可能易懂一点:public class Temperature : IComparable { protected double temperatureF; public int CompareTo(object obj) { if(obj is Temperature) { Temperature oth