📅  最后修改于: 2023-12-03 15:29:46.724000             🧑  作者: Mango
在C#中,要以降序返回列表,可以使用OrderByDescending
方法。该方法按照指定的键值(可用lambda表达式表示),将列表中的元素以降序排列。下面是一个简单的示例:
List<int> numbers = new List<int>{ 1, 5, 3, 2, 4 };
var descendingNumbers = numbers.OrderByDescending(n => n);
foreach (var n in descendingNumbers)
{
Console.WriteLine(n);
}
该代码会输出:
5
4
3
2
1
请注意,OrderByDescending
方法不会修改原始列表的顺序。如果您想修改原始列表,请使用List<T>
类的Sort
方法,该方法可以接受一个Comparison<T>
委托,该委托可以用于自定义排序逻辑。
在OrderByDescending
方法中,您还可以使用ThenByDescending
和ThenBy
方法来添加排序规则,以便对复杂的对象进行排序。例如:
List<Person> people = new List<Person>{
new Person{ Name = "Alice", Age = 30 },
new Person{ Name = "Bob", Age = 25 },
new Person{ Name = "Charlie", Age = 30 },
new Person{ Name = "David", Age = 25 },
};
var descendingPeople = people.OrderByDescending(p => p.Age).ThenBy(p => p.Name);
foreach (var p in descendingPeople)
{
Console.WriteLine($"{p.Name} ({p.Age})");
}
该代码将首先按年龄降序排列,然后按姓名升序排列。输出如下:
Alice (30)
Charlie (30)
Bob (25)
David (25)
希望这些示例可以帮助您以降序返回列表。请注意,本文示例中的代码需要C# 3.0或更高版本才能编译。如果您使用的是旧版本的C#,在使用lambda表达式时可能需要使用delegate
关键字。