排序依据

按指定值对集合进行排序。

当值为整数doublefloat 时,它以最小值开始,这意味着你首先获得负值,而不是零,然后是正值(参见示例 1)。

当你通过 char 进行排序时,该方法会比较字符的 ascii 值以对集合进行排序(请参阅示例 2)。

当你对字符串进行排序时,OrderBy 方法通过查看他们的 CultureInfo 来比较它们,但是从字母表中的第一个字母开始 (a,b,c …)。

这种顺序称为升序,如果你想要它反过来需要降序(参见 OrderByDescending)。

例 1:

int[] numbers = {2, 1, 0, -1, -2};
IEnumerable<int> ascending = numbers.OrderBy(x => x);
// returns {-2, -1, 0, 1, 2}

例 2:

 char[] letters = {' ', '!', '?', '[', '{', '+', '1', '9', 'a', 'A', 'b', 'B', 'y', 'Y', 'z', 'Z'};
 IEnumerable<char> ascending = letters.OrderBy(x => x);
 // returns { ' ', '!', '+', '1', '9', '?', 'A', 'B', 'Y', 'Z', '[', 'a', 'b', 'y', 'z', '{' }

例:

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 youngestPerson = people.OrderBy(x => x.Age).First();
var name = youngestPerson.Name; // Bob