📅  最后修改于: 2023-12-03 15:13:49.433000             🧑  作者: Mango
在C#中,OrderBy
和OrderByDescending
是LINQ(Language Integrated Query)查询语法中用于对集合进行排序的方法。这两个方法允许程序员按照指定的条件对集合中的元素进行排序并返回一个新的排序后的集合。
OrderBy
方法按照指定的条件对集合进行升序排序。
var numbers = new List<int> { 5, 2, 9, 1, 3 };
var sortedNumbers = numbers.OrderBy(n => n);
foreach (var number in sortedNumbers)
{
Console.WriteLine(number);
}
输出:
1
2
3
5
9
OrderByDescending
方法按照指定的条件对集合进行降序排序。
var numbers = new List<int> { 5, 2, 9, 1, 3 };
var sortedNumbers = numbers.OrderByDescending(n => n);
foreach (var number in sortedNumbers)
{
Console.WriteLine(number);
}
输出:
9
5
3
2
1
除了基本的类型排序,我们还可以使用自定义的排序条件进行排序。例如,对一个包含Person对象的集合按照年龄进行排序:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
var people = new List<Person>
{
new Person { Name = "John", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Alice", Age = 20 }
};
var sortedPeople = people.OrderByDescending(p => p.Age);
foreach (var person in sortedPeople)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
输出:
Name: Bob, Age: 30
Name: John, Age: 25
Name: Alice, Age: 20
OrderBy
方法用于按照指定条件对集合进行升序排序,而OrderByDescending
方法用于按照指定条件对集合进行降序排序。根据具体需求选择合适的方法来排序集合,使得程序更加灵活和高效。