首页 > 学院 > 开发设计 > 正文

C#自定义对象排序

2019-11-17 02:26:30
字体:
来源:转载
供稿:网友

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         }


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表