Почему у List.BinarySearch () нет перегрузок, которые принимают Comparison в дополнение к IComparer ?

я хочу использовать List.BinarySearch () с пользовательским типом элемента. Пользовательский тип не реализует IComparable ; вместо этого у меня есть несколько статических Comparison функций, которые я вызываю, потому что в разных точках я хочу отсортировать список по разным критериям. Кроме того, я думаю, что это добавляет ясности, поскольку способ сортировки можно описать по имени функции. Теперь я хочу выполнить двоичный поиск по списку. Я хотел использовать одну из моих функций сравнения, но обнаружил, что List.BinarySearch () не имеет перегрузки, которая принимает Comparison , только IComparer < T> . Я стараюсь избегать использования IComparer , потому что мне кажется глупым иметь отдельный класс только для сравнения объектов. Почему List.BinarySearch () не имеет перегрузок, которые принимают Comparison в дополнение к IComparer ? И есть ли способ использовать мои существующие функции Comparison в List.BinarySearch () ?

5
задан Craig W 6 December 2011 в 19:43
поделиться