Метод, вызываемый в первом примере, имеет подпись:
Array.Sort(int[] array, Comparison<int> comparison)
Используемый вами делегат предназначен для сравнения. Не существует перегрузки Array.Sort
с индексом, длина и Сравнение.
Метод, который вы пытаетесь вызвать, имеет следующую подпись:
Array.Sort(int[] array, int index, int length, IComparer<int> comparer)
Примечание IComparer, а не сравнение
Если вам нужна пользовательская сортировка. Вам нужно будет создать класс, который реализует IComparer , поскольку именно этого ожидает 4-й параметр.
Либо попробуйте метод расширения .OrderByDescending
, который доступен, если вы включите using System.Linq;