Ngôn ngữ LINQ - ThenByDescending

Toán tử sắp xếp ThenByDescending trong LINQ

Tương tự phương thức mở rộng ThenBy, phương thức mở rộng ThenByDescending cũng được sử dụng để sắp xếp danh sách giảm dần theo trường tiếp theo nếu trường đầu tiên có giá trị giống nhau.

Phương thức mở rộng ThenByDescending chỉ hợp lệ với cú pháp phương thức LINQ.

Ví dụ dưới đây sắp xếp danh sách tăng dần theo tên và giảm dần theo tuổi:

// Student collection
IList<Student> studentList = new List<Student>() 
{ 
    new Student() { StudentID = 1, StudentName = "John", Age = 18 },
    new Student() { StudentID = 2, StudentName = "Steve",  Age = 15 },
    new Student() { StudentID = 3, StudentName = "Bill",  Age = 25 },
    new Student() { StudentID = 4, StudentName = "Ram" , Age = 20 },
    new Student() { StudentID = 5, StudentName = "Ron" , Age = 19 },
    new Student() { StudentID = 6, StudentName = "Ron" , Age = 18 },  
    new Student() { StudentID = 7, StudentName = "Ram" , Age = 14 }
};

var multiSortingResult = studentList.OrderBy(s => s.StudentName)
                                    .ThenByDescending(s => s.Age)
                                    .ToList();

foreach (var std in multiSortingResult)
  Console.WriteLine("Name: {0}, Age:{1}", std.StudentName, std.Age);

Đây là kết quả khi biên dịch và thực thi chương trình:

Name: Bill, Age 25
Name: John, Age 18
Name: Ram, Age 20
Name: Ram, Age 14
Name: Ron, Age 19
Name: Ron, Age 18
Name: Steve, Age 15

Xem ví dụ