自定义比较器排序

1、List集合

对于List集合本身带有sort()方法,并且还可以使用Lambda表达式进行排序。

这里介绍一种自定义排序的方式,有labmda好像就可以搞定了,在这里就多学习 一点知识吧   

  

 public class Student : IComparable
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int SchoolPhaseId { get; set; }
        public int GradeId { get; set; }
        public int ClassId { get; set; }
        //自定义比较器,继承来自IComparable的比较方法,重新写比较方式
        public int CompareTo(object obj)
        {
            Student stu = (Student)obj;
            return stu.Id - this.Id;
        }
    }

 public ActionResult ListComparerTest()
        {
            List<Student> stuList = new List<Student>();
            //ArrayList stuList = new ArrayList();
            stuList.Add(new Student() { Id = 1, Name = "1", SchoolPhaseId = 3, GradeId = 1, ClassId = 1, });
            stuList.Add(new Student() { Id = 2, Name = "1", SchoolPhaseId = 3, GradeId = 1, ClassId = 2, });
            stuList.Add(new Student() { Id = 3, Name = "1", SchoolPhaseId = 3, GradeId = 1, ClassId = 2, });
            stuList.Add(new Student() { Id = 4, Name = "1", SchoolPhaseId = 3, GradeId = 1, ClassId = 3, });
            stuList.Add(new Student() { Id = 5, Name = "1", SchoolPhaseId = 3, GradeId = 1, ClassId = 3, });
            stuList.Add(new Student() { Id = 6, Name = "1", SchoolPhaseId = 3, GradeId = 1, ClassId = 3, });
            stuList.Add(new Student() { Id = 7, Name = "1", SchoolPhaseId = 3, GradeId = 1, ClassId = 4, });
            stuList.Add(new Student() { Id = 8, Name = "1", SchoolPhaseId = 3, GradeId = 1, ClassId = 4, });
            stuList.Add(new Student() { Id = 9, Name = "1", SchoolPhaseId = 3, GradeId = 1, ClassId = 4, });
            stuList.Add(new Student() { Id = 10, Name = "1", SchoolPhaseId = 3, GradeId = 1, ClassId = 4, });
            stuList.Sort();//查看比较结果

            return Content("ok");
        }

  

转载于:https://www.cnblogs.com/lldbj/p/8342717.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值