在C#中,OrderBy
方法用于對集合中的元素進行排序。它返回一個新的IEnumerable<T>
序列,該序列包含按指定順序排序的元素。OrderBy
方法在內部使用LINQ的排序算法,該算法具有穩定的特性,這意味著相等元素的相對順序不會改變。
OrderBy
方法的執行順序如下:
OrderBy
方法會對輸入的集合進行復制,以便在排序過程中不會修改原始集合。IComparer<T>
接口的實現,以確定元素的排序順序。OrderBy
方法會對復制的集合進行排序,使用指定的比較器或IComparer<T>
接口的實現。OrderBy
方法返回一個新的IEnumerable<T>
序列,該序列包含按指定順序排序的元素。需要注意的是,OrderBy
方法本身不會立即對原始集合進行排序。如果你想立即對原始集合進行排序,可以使用OrderByDescending
方法(降序排序)或ToList()
、ToArray()
等方法將排序后的結果轉換為其他數據結構。
示例:
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 列表進行升序排序
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