IComparable<T>:泛型接口
public interface IComparable<T>
{
int CompareTo(T obj);
}
1.功能:实现比较的功能
2.使用步骤:
1)Employee实现IComparable<T>接口
2)在Employee中实现接口的CompareTo()方法
public int CompareTo(Employee obj)
{
//指定两个对象比较的方式
//return this.name.CompareTo(obj.name);
//return this.age - obj.age;//升序
return obj.age - this.age;//降序
}
3)使用
list.Sort();//将会自动调用以上编写的CompareTo方法
3.缺陷:
此时,实现IComparable<T>接口的
Employee只能拥有一种指定的比较方式
IComparer<T>:泛型接口
public interface IComparer<T>
{
int Compare(T x,T y);
}
1.功能:实现比较的功能
2.优点:实现多种比较方式
3.使用步骤:
1)自定义的比较器类 实现IComparer<T>接口
2)在 自定义的比较器类中 重写接口的Compare(T x,T y)方法
public int Compare(T x,T y)
{
//指定两个对象比较的方式
return x.Name.CompareTo(y.Name);
}
3)使用:在排序时,指定具体的比较器
list.Sort(new 自定义比较器类());
4.优势:
如果想拥有多种比较方式,自定义多个比较器类