C#中的Linq提供了一种方便的方法来处理数据序列,其中OrderBy()是排序操作中的一个重要部分。OrderBy()方法可以按照序列中指定的键值对序列进行排序,并返回一个IEnumerable
语法格式
public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector);
public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IComparer<TKey> comparer);
其中,source是被排序的序列,keySelector是一个函数,用于选择要排序的键值,TKey是keySelector返回值的类型,comparer是可选的,可以自定义比较键值大小的规则。
示例
实例1
List<int> numbers = new List<int>
{
5, 8, 1, 7, 6, 2, 4, 3
};
var sortedNumbers = numbers.OrderBy(n => n);
foreach (var n in sortedNumbers)
{
Console.WriteLine(n);
}
输出结果:
1
2
3
4
5
6
7
8
在这个示例中,我们创建了一个整数列表,包含数字1到8。我们使用OrderBy()方法对它们进行了排序,并返回了一个新的排序后的序列。我们将新序列中的每个元素都打印出来,以便我们可以看到排序的顺序。
实例2
class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
List<Employee> employees = new List<Employee>
{
new Employee { Id = 1, Name = "Tom", Age = 35 },
new Employee { Id = 2, Name = "Jerry", Age = 30 },
new Employee { Id = 3, Name = "Lucy", Age = 27 },
new Employee { Id = 4, Name = "Maggie", Age = 28 }
};
var sortedEmployees = employees.OrderBy(e => e.Age);
foreach (var employee in sortedEmployees)
{
Console.WriteLine($"{employee.Name}, {employee.Age}");
}
输出结果:
Lucy, 27
Maggie, 28
Jerry, 30
Tom, 35
在这个示例中,我们创建了一个员工列表,每个员工有一个ID、姓名和年龄。我们使用OrderBy()方法对员工按照年龄进行排序,返回了新的按照年龄排序的序列。我们打印出每个员工的姓名和年龄,以便我们可以看到员工按照年龄排序后的顺序。
总的来说,OrderBy()方法是C# Linq库中的一个强大的工具,可以使我们轻松地对数据序列进行排序。无论是对简单的数字列表还是包含复杂对象的序列进行排序,OrderBy()都是一个非常有用的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# Linq的OrderBy()方法 – 根据指定的键按升序对序列的元素进行排序 - Python技术站