自定义比较器排序
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"); }