Мне довелось увидеть какой-то код, в котором этот парень передал выражение лямбда в ArrayList.Sort(здесь IComparer) или IEnumerable.SequenceEqual(список IEnumerable, IEqualityComparer здесь), где ожидался IComparer или IEqualityComparer.
Я не могу быть уверен, видел ли я это, или я просто мечтаю. И я не могу найти расширение в любой из этих коллекций, которая принимает Func < > или делегат в своих сигнатурах методов.
Есть ли такой метод перегрузки/расширения? Или, если нет, можно ли так обманывать это и передать алгоритм (читать делегат), где ожидается интерфейс с одним методом?
Обновление Всем спасибо. Это то, что я думал. Должно быть, я мечтал. Я знаю, как писать конверсию. Я просто не был уверен, видел ли я что-то подобное или просто думал, что видел его.
Еще одно обновление Послушайте, здесь я нашел один такой экземпляр. В конце концов, я не мечтал. Посмотрите что этот парень делает здесь. Что дает?
И вот еще одно обновление:
Хорошо, я понимаю. Парень использует перегрузку Comparison<T>
. Ницца. Приятно, но вполне склонно вводить вас в заблуждение. Приятно, однако. Спасибо.