您的位置:首页 > 其它

IComparable<T> 与 IComparer<T>

2015-06-27 02:04 225 查看
var perspon= new List<Employee>
{
new Employee{EmployeeName="张三",20},
new Employee{EmployeeName="李四",23}
};

 person.Sort(); //这里实现了默认
 person.Sort(new SortName());
foreach(Employee item in person)
{
//打印输出
}

//IComparer<T> 实现自定义的比较器
public class SortName:IComparer<Employ>
{

public int  Compare( Employ x, Employ y)
{
return y.EmployeeName.CompareTo(x.EmployeeName);
}
}

//IComparable 实现了List的默认sort();
public class Employee:IComparable<Employee>
{
public Employee()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public string EmployeeName { get; set; }
public int Age { get; set; }

public int CompareTo(Employee emp)
{
return this.Age.CompareTo(emp.Age);
}
}
一般情况下,我们使用 IComparable 给出类的默认比较代码,使用其他类给出非默认的比较代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: