在C#中,OrderBy
方法用于對集合中的元素進(jìn)行排序。它返回一個新的IEnumerable<T>
序列,該序列包含按指定順序排序的元素。OrderBy
方法在內(nèi)部使用LINQ的排序算法,該算法具有穩(wěn)定的特性,這意味著相等元素的相對順序不會改變。
OrderBy
方法的執(zhí)行順序如下:
OrderBy
方法會對輸入的集合進(jìn)行復(fù)制,以便在排序過程中不會修改原始集合。IComparer<T>
接口的實(shí)現(xiàn),以確定元素的排序順序。OrderBy
方法會對復(fù)制的集合進(jìn)行排序,使用指定的比較器或IComparer<T>
接口的實(shí)現(xiàn)。OrderBy
方法返回一個新的IEnumerable<T>
序列,該序列包含按指定順序排序的元素。需要注意的是,OrderBy
方法本身不會立即對原始集合進(jìn)行排序。如果你想立即對原始集合進(jìn)行排序,可以使用OrderByDescending
方法(降序排序)或ToList()
、ToArray()
等方法將排序后的結(jié)果轉(zhuǎn)換為其他數(shù)據(jù)結(jié)構(gòu)。
示例:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 5, 3, 8, 1, 4 };
// 使用 OrderBy 對 numbers 列表進(jìn)行升序排序
var sortedNumbers = numbers.OrderBy(n => n).ToList();
Console.WriteLine("Sorted numbers:");
foreach (var number in sortedNumbers)
{
Console.WriteLine(number);
}
}
}
輸出:
Sorted numbers:
1
3
4
5
8