📜  LINQ排序运算符(1)

📅  最后修改于: 2023-12-03 15:17:20.041000             🧑  作者: Mango

LINQ排序运算符

LINQ中的排序运算符可以帮助我们对集合进行排序,常用的排序运算符包括:

  • OrderBy
  • OrderByDescending
  • ThenBy
  • ThenByDescending
  • Reverse
OrderBy

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

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

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

ThenByDescending可以对排序结果进一步排序,但是排序方式为降序,语法与ThenBy相似。

Reverse

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排序运算符的介绍,希望对你有所帮助!