你的位置:首页 > ASP.net教程

[ASP.net教程]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     }