第一步: 给要比较的对象的类添加排序类, 有几种比较方式, 就添加几个排序类, 并且分别实现排序接口
class Student
{
public int StudentID { get; set; }
public string StudentName { get; set; }
public Student() { }
public Student(int studentID, string studentName)
{
this.StudentID = studentID;
this.StudentName = studentName;
}
}
class StuNameASC : IComparer<Student>
{
public int Compare(Student x, Student y)
{
return x.StudentName.CompareTo(y.StudentName);
}
}
class StuNameDESC : IComparer<Student>
{
public int Compare(Student x, Student y)
{
return y.StudentName.CompareTo(x.StudentName);
}
}
class AgeASC : IComparer<Student>
{
public int Compare(Student x, Student y)
{
return x.StudentID.CompareTo(y.StudentID);
}
}
class AgeDESC : IComparer<Student>
{
public int Compare(Student x, Student y)
{
return y.StudentID.CompareTo(x.StudentID);
}
}
第二步: 给要比较的Student集合执行Sort(), 参数为第一步中创建的排序类的对象
Student stu1 = new Student() { StudentID = 1001, StudentName = "小米"};
Student stu2 = new Student(1002, "雷军");
Student stu3 = new Student(1003, "数据库");
Student stu4 = new Student() { StudentID = 1004, StudentName = "苹果" };
List<Student> studentList = new List<Student>() { stu1, stu2, stu3, stu4 };
studentList.Sort(new StuNameASC());
studentList.Sort(new StuNameDESC());
StudentList.Sort(new AgeASC());
StudentList.Sort(new AgeDESC());