C# Linq的OrderBy()方法 – 根据指定的键按升序对序列的元素进行排序

  • Post category:C#

当我们需要对集合中的元素进行排序时,就可以使用C# LINQ提供的OrderBy()方法。通过该方法,我们可以轻松地对一个集合进行升序排序。以下是该方法的完整攻略以及两个实例的说明:

语法

OrderBy()方法使用如下所示:

source.OrderBy(x => x.property)

其中,source表示需要进行排序的集合,property表示需要排序的属性。

示例1

下面是一个示例,它演示如何对数字类型的集合进行升序排序,例如列表:[5, 2, 8, 7, 1]

List<int> numbers = new List<int>() { 5, 2, 8, 7, 1 };
var orderedNumbers = numbers.OrderBy(n => n).ToList();

foreach (var num in orderedNumbers) 
{
    Console.WriteLine(num);
}

代码的输出结果如下所示:

1
2
5
7
8

在这个示例中,我们首先创建了一个整数类型的集合,然后使用OrderBy()方法将该集合按照升序排序。最后,我们使用foreach循环遍历返回的排序集合,并在控制台上输出每个元素。

示例2

下面是示例2,它演示了如何对人员列表进行排序,例如按照年龄升序排列:

class Person 
{
    public string Name { get; set; }
    public int Age { get; set; }
}

List<Person> people = new List<Person>() 
{
    new Person{ Name = "Tom", Age = 30 },
    new Person{ Name = "Jack", Age = 25 },
    new Person{ Name = "Amy", Age = 35 },
    new Person{ Name = "Mary", Age = 28 },
};

var orderedPeople = people.OrderBy(p => p.Age).ToList();

foreach (var person in orderedPeople)
{
    Console.WriteLine("Name: {0}, Age: {1}", person.Name, person.Age);
}

在这个示例中,我们首先创建了一个人员对象的列表,然后使用OrderBy()方法将其按照年龄升序排序。在最终输出中,我们打印了每个人员对象的姓名和年龄。

以上就是关于OrderBy()方法的完整攻略,以及它的两个实例。