Ngôn ngữ LINQ - Toán tử ThenBy

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

Nếu như phương thức mở rộng OrderBy được sử dụng để sắp xếp danh sách theo thứ tự tăng dần của trường đầu tiên thì phương thức ThenBy cho phép sắp xếp danh sách theo thứ tự tăng dần của 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 ThenBy 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à 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)
                                    .ThenBy(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 14
Name: Ram, Age 20
Name: Ron, Age 18
Name: Ron, Age 19
Name: Steve, Age 15

Xem ví dụ