OrderByDescending

按指定值對集合進行排序。

當值為整數doublefloat 時,它以最大值開始,這意味著你首先獲得正值,而不是零,然後是負值(參見示例 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