在C#中,你可以使用List
类来创建一个集合,然后使用OrderBy()
或OrderByDescending()
方法来实现自定义排序。这两个方法都接受一个Func
类型的参数,这个参数是一个Lambda表达式,用于定义排序的依据。
下面是一个简单的示例,展示了如何使用OrderBy()
方法对一个整数列表进行升序排序:
using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { Listnumbers = new List { 5, 3, 8, 1, 6 }; // 使用 OrderBy() 方法进行升序排序 List sortedNumbers = numbers.OrderBy(x => x).ToList(); Console.WriteLine("Sorted numbers:"); foreach (int number in sortedNumbers) { Console.Write(number + " "); } } }
如果你想实现降序排序,可以使用OrderByDescending()
方法:
// 使用 OrderByDescending() 方法进行降序排序 ListsortedNumbersDescending = numbers.OrderByDescending(x => x).ToList(); Console.WriteLine("\nSorted numbers in descending order:"); foreach (int number in sortedNumbersDescending) { Console.Write(number + " "); }
你还可以使用ThenBy()
方法对排序结果进行进一步的自定义排序。例如,如果你想先按奇数升序排序,然后按偶数降序排序,可以这样做:
ListsortedNumbersByOddFirst = 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)
会对相同奇偶性的数字进行升序排序。