C#中实现接口排序

IComparable接口和IComparable<T>接口【实现两个对象之间的比较】 接口将会实现CompareTo(Object obj)和CompareTo(Student student) 代码如下: public int CompareTo(object obj) { throw new NotImplementedException(); } 案例: class Student:IComparable<Student> { public string Name { get; set; } public int Age { get; set; } public string Address { get; set; } //该方法实现年龄的比较 public int CompareTo(Student other) { return this.Age.CompareTo(other.Age); } } class Program { static void Main(string[] args) { Student stu1=new Student(){Name="zhangsan",Age=18,Address="xiangfan"}; Student stu2=new Student(){Name="lisi",Age=20,Address="wuhan"}; int result=stu1.CompareTo(stu2); 结果: 如果result>0 stu1.Age > stu2.Age 如果result=0 stu1.Age = stu2.Age 如果result<0 stu1.Age < stu2.Age } } IComparer接口和IComparer<T>接口【可实现集合对象按照对象的某一个属性进行的排序】 接口将实现Compare(Object x,Object y)、Compare(Student x, Student y) //实现Student类中以年龄进行排序 class ComparerStudentAge:IComparer<Student> { public int Compare(Student x,Student y) { return x.Age.CompareTo(y.Age); } } //实现Student类中以姓名进行排序 class ComparerStudentName:IComparer<Student> { public int Compare(Student x,Student y) { return x.Name.CompareTo(y.Name); } } class Program { static void Main(string[] args) { List<Student> list = new List<Student>() { new Student(){ Name="zhangsan", Age=18, Address="上海浦东"}, new Student(){Name="lisi",Age=20,Address="上海闸北"}, new Student(){Name="wangwu",Age=22,Address="襄樊"}, new Student(){Name="zhaoliu",Age=15,Address="武汉"}, new Student(){Name="qianqi",Age=39,Address="随州"}, new Student(){Name="kunkun",Age=21,Address="襄樊"} }; //使用姓名排序 list.Sort(new ComparerStudentName()); //使用年龄进行排序 list.Sort(New ComparerStudentAge()); } }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值