OrderByDescending
按指定值对集合进行排序。
当值为整数, double 或 float 时,它以最大值开始,这意味着你首先获得正值,而不是零,然后是负值(参见示例 1)。
当你通过 char 进行排序时,该方法会比较字符的 ascii 值以对集合进行排序(请参阅示例 2)。
当你对字符串进行排序时,OrderBy 方法通过查看他们的 CultureInfo 来比较它们,但是从字母表中的最后一个字母开始 (z,y,x,…)。
这种顺序称为降序,如果你想要它反过来需要提升(参见 OrderBy)。
例 1:
int[] numbers = {-2, -1, 0, 1, 2};
IEnumerable<int> descending = numbers.OrderByDescending(x => x);
// returns {2, 1, 0, -1, -2}
例 2:
char[] letters = {' ', '!', '?', '[', '{', '+', '1', '9', 'a', 'A', 'b', 'B', 'y', 'Y', 'z', 'Z'};
IEnumerable<char> descending = letters.OrderByDescending(x => x);
// returns { '{', 'z', 'y', 'b', 'a', '[', 'Z', 'Y', 'B', 'A', '?', '9', '1', '+', '!', ' ' }
例 3:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
var people = new[]
{
new Person {Name = "Alice", Age = 25},
new Person {Name = "Bob", Age = 21},
new Person {Name = "Carol", Age = 43}
};
var oldestPerson = people.OrderByDescending(x => x.Age).First();
var name = oldestPerson.Name; // Carol