Метод Sort
принимает делегата с именем Comparison<T>
. Вы пытаетесь передать Func<int, int, bool>
, который сам является делегатом. Между делегатом Func<int, int, bool>
и делегатом Comparison<T>
.
нет преобразования.
Однако вы можете использовать лямбда-выражение .
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 обозначает равные, а положительные значения указывают больше чем.