是的,C#的OrderByDescending方法是支持自定義比較器的。您可以使用重載的OrderByDescending方法,并提供一個實現了IComparer接口的自定義比較器作為參數。下面是一個示例:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 5, 3, 8, 1, 2 };
// 使用自定義比較器進行降序排序
numbers = numbers.OrderByDescending(x => x, new CustomComparer()).ToList();
foreach (var number in numbers)
{
Console.WriteLine(number);
}
}
public class CustomComparer : IComparer<int>
{
public int Compare(int x, int y)
{
// 自定義比較邏輯,這里示例為按絕對值降序排序
return Math.Abs(y).CompareTo(Math.Abs(x));
}
}
}
在上面的示例中,我們使用CustomComparer類來實現自定義的比較邏輯,然后將其傳遞給OrderByDescending方法作為參數,來實現按絕對值的降序排序。您也可以根據您的需求實現不同的自定義比較器來實現不同的排序邏輯。