Sort
метод принимает делегат под названием Comparison<T>
. Вы пытаетесь передать в Func<int, int, bool>
, который сам является делегатом. Нет конверсии между делегатом Func<int, int, bool>
и делегатом Comparison<T>
.
Вы можете, однако, использовать lambda expression.
items.Sort((a, b) => a.DateModified.CompareTo(b.DateModified));
В самом деле, вы используете это очень лямбда-выражение и передать его в конструктор Func<int, int, bool>
*. Однако нет необходимости. Выражение лямбда может быть преобразовано в любые сопоставления подписи делегата, то есть (a, b) => a.DateModified.CompareTo(b.DateModified)
может быть присвоено что-то напечатанное Func<int, int, int>
или что-то введенное Comparison<T>
. В этом случае мы передаем его тому, что ожидает Comparison<T>
.
*
С одной небольшой корректировкой. Сортировка ожидает целое число как возвращаемый тип. Отрицательные значения указывают меньше, 0 указывает равные, а положительные значения указывают больше.
Я предполагаю, что вы сократили функцию для демонстрационных целей? Потому что он должен возвращать строку, но ничего не возвращает. –
Время, чтобы выбрать ответ mistah :) – Skurmedel