📅  最后修改于: 2023-12-03 15:18:10.347000             🧑  作者: Mango
In programming, we frequently need to sort data based on one or more criteria. In C#, the order by
and then by
keywords are used to sort data in ascending or descending order. This feature is particularly useful when working with collections or datasets that require custom sorting logic.
The order by
keyword is used to sort data based on a single property or field. It can be used with any data type that implements the IEnumerable<T>
interface.
Here is an example of sorting a list of objects by a specific property using the order by
keyword:
var students = new List<Student>
{
new Student { Name = "Adam", Age = 25 },
new Student { Name = "John", Age = 22 },
new Student { Name = "Emily", Age = 24 }
};
var sortedStudents = students.OrderBy(s => s.Name);
foreach (var student in sortedStudents)
{
Console.WriteLine($"{student.Name} - {student.Age}");
}
Output:
Adam - 25
Emily - 24
John - 22
In this example, the students
list is sorted in ascending order by the Name
property using the OrderBy
method.
The then by
keyword is used to sort data based on multiple properties or fields. It can be used after the order by
keyword to define secondary sorting criteria.
Here is an example of sorting a list of objects by multiple properties using the order by
and then by
keywords:
var students = new List<Student>
{
new Student { Name = "Adam", Age = 25 },
new Student { Name = "John", Age = 22 },
new Student { Name = "Adam", Age = 24 }
};
var sortedStudents = students.OrderBy(s => s.Name).ThenBy(s => s.Age);
foreach (var student in sortedStudents)
{
Console.WriteLine($"{student.Name} - {student.Age}");
}
Output:
Adam - 24
Adam - 25
John - 22
In this example, the students
list is first sorted in ascending order by the Name
property, and then by the Age
property using the ThenBy
method.
Ordering data is a common requirement in programming, and C# provides a convenient way to achieve this using the order by
and then by
keywords. By combining these keywords, you can sort data based on one or more criteria, allowing you to control the order in which the data is presented or processed.
By utilizing the order by
and then by
keywords, you can easily handle complex sorting requirements in your C# programs.