📜  c# 以降序返回列表 - C# (1)

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

C# 以降序返回列表

在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方法中,您还可以使用ThenByDescendingThenBy方法来添加排序规则,以便对复杂的对象进行排序。例如:

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关键字。