在C#中,你可以使用List<T>
類來創建一個集合,然后使用OrderBy()
或OrderByDescending()
方法來實現自定義排序。這兩個方法都接受一個Func<T, TResult>
類型的參數,這個參數是一個Lambda表達式,用于定義排序的依據。
下面是一個簡單的示例,展示了如何使用OrderBy()
方法對一個整數列表進行升序排序:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 5, 3, 8, 1, 6 };
// 使用 OrderBy() 方法進行升序排序
List<int> sortedNumbers = numbers.OrderBy(x => x).ToList();
Console.WriteLine("Sorted numbers:");
foreach (int number in sortedNumbers)
{
Console.Write(number + " ");
}
}
}
如果你想實現降序排序,可以使用OrderByDescending()
方法:
// 使用 OrderByDescending() 方法進行降序排序
List<int> sortedNumbersDescending = numbers.OrderByDescending(x => x).ToList();
Console.WriteLine("\nSorted numbers in descending order:");
foreach (int number in sortedNumbersDescending)
{
Console.Write(number + " ");
}
你還可以使用ThenBy()
方法對排序結果進行進一步的自定義排序。例如,如果你想先按奇數升序排序,然后按偶數降序排序,可以這樣做:
List<int> sortedNumbersByOddFirst = numbers
.OrderBy(x => x % 2 == 0) // 先按奇數升序排序
.ThenBy(x => x) // 再按偶數降序排序
.ToList();
Console.WriteLine("\nSorted numbers by odd first:");
foreach (int number in sortedNumbersByOddFirst)
{
Console.Write(number + " ");
}
這個示例中,OrderBy(x => x % 2 == 0)
會根據數字是奇數還是偶數進行排序,然后ThenBy(x => x)
會對相同奇偶性的數字進行升序排序。