码迷,mamicode.com
首页 > 编程语言 > 详细

C#自定义对象排序

时间:2015-04-18 10:01:15      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

数组对象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         }

技术分享

 

C#自定义对象排序

标签:

原文地址:http://www.cnblogs.com/liunlls/p/IComparable.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!