📅  最后修改于: 2023-12-03 15:17:20.041000             🧑  作者: Mango
LINQ中的排序运算符可以帮助我们对集合进行排序,常用的排序运算符包括:
OrderBy运算符可以对集合进行升序排序,语法如下:
var orderedList = myList.OrderBy(x => x.Property);
其中,x表示集合中的元素,Property表示我们想要排序的属性。OrderBy返回一个按属性升序排列的新集合。
示例:
var myList = new List<int> { 5, 1, 3, 4, 2 };
var orderedList = myList.OrderBy(x => x);
foreach (var item in orderedList)
{
Console.WriteLine(item);
}
输出:
1
2
3
4
5
OrderByDescending运算符可以对集合进行降序排序,语法如下:
var orderedList = myList.OrderByDescending(x => x.Property);
其中,x表示集合中的元素,Property表示我们想要排序的属性。OrderByDescending返回一个按属性降序排列的新集合。
示例:
var myList = new List<int> { 5, 1, 3, 4, 2 };
var orderedList = myList.OrderByDescending(x => x);
foreach (var item in orderedList)
{
Console.WriteLine(item);
}
输出:
5
4
3
2
1
ThenBy运算符可以对排序结果进行进一步排序,语法如下:
var orderedList = myList.OrderBy(x => x.Property1).ThenBy(x => x.Property2);
其中,x表示集合中的元素,Property1和Property2分别表示我们想要按照顺序排序的两个属性。ThenBy返回一个按属性1升序、按属性2升序排列的新集合。
示例:
var myList = new List<Person>
{
new Person("John", "Doe", 30),
new Person("John", "Smith", 25),
new Person("Jane", "Doe", 28),
new Person("Jane", "Smith", 23)
};
var orderedList = myList.OrderBy(x => x.LastName).ThenBy(x => x.FirstName);
foreach (var item in orderedList)
{
Console.WriteLine($"{item.FirstName} {item.LastName} ({item.Age})");
}
输出:
John Doe (30)
Jane Doe (28)
John Smith (25)
Jane Smith (23)
ThenByDescending可以对排序结果进一步排序,但是排序方式为降序,语法与ThenBy相似。
Reverse可以将一个集合倒序排列,语法如下:
var reversedList = myList.Reverse();
其中,myList表示待倒序排列的集合。Reverse返回一个倒序排列的新集合。
示例:
var myList = new List<int> { 5, 1, 3, 4, 2 };
var reversedList = myList.Reverse();
foreach (var item in reversedList)
{
Console.WriteLine(item);
}
输出:
2
4
3
1
5
以上就是LINQ排序运算符的介绍,希望对你有所帮助!