C#自定义对象排序

王朝学院·作者佚名  2016-05-20  
宽屏版  字体: |||超大  

C#自定义对象排序数组对象Array有一个Sort方法(点击查看Sort方法的实现),专门是用来排序的,请看下图

如果我们想为自己的类添加一个排序,只需要继承IComparable接口,实现CompareTo方法就行;

调用CompareTo方法内部实现对象的比较,通过返回值确定对象的顺序

负数值,当前对象<参数对象

正数值,当前对象>参数对象

零,两个对象相等

下面我们就根据接口自定义自己的对象排序方式

1 class People:IComparable 2 { 3 public uint Age { get; set; } 4 5 #region IComparable 成员 6 //实现一个人类根据年龄排序 7 public int CompareTo(object obj) 8 { 9 var people = (People)obj;10 if (this.Age > people.Age)11 return 1;12 else if (this.Age < people.Age)13 return -1;14 return 0;15 }16 17 #endregion18 }

1 static void Main(string[] args) 2 { 3 var arrs =new People[] { 4 new People{Age=15}, 5 new People{Age=24}, 6 new People{Age=13}, 7 new People{Age=18}, 8 new People{Age=14} 9 };10 11 arrs.ToList().ForEach(a => Console.Write("{0} ", a.Age));12 Array.Sort(arrs);13 Console.WriteLine("");14 arrs.ToList().ForEach(a => Console.Write("{0} ", a.Age));15 }

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有