自定义比较器排序

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");
        }

  

posted on 2018-01-24 17:29  木头人段  阅读(233)  评论(0编辑  收藏  举报

导航