标签:
数组对象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 #endregion 18 }
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 }
标签:
原文地址:http://www.cnblogs.com/liunlls/p/IComparable.html