Простой вопрос - задан IList<T>, как вы выполняете двоичный поиск, не записывая метод самостоятельно и не копируя данные в тип с встроенной поддержкой двоичного поиска. Мое текущее состояние следующее.
-
List<T>.BinarySearch()не является членомIList<T> - Нет эквивалента метода
ArrayList.Adapter()дляList<T> -
IList<T>не наследуется отIList, поэтому использованиеArrayList.Adapter()невозможно
Я склонен полагать, что это невозможно с помощью встроенных методов, но я не могу поверить, что такой базовый метод отсутствует в BCL/FCL.
Если это невозможно, кто может дать самую короткую, быструю, умную или самую красивую реализацию бинарного поиска для IList<T>?
UPDATE
Мы все знаем, что список должен быть отсортирован перед использованием двоичного поиска, поэтому вы можете предположить, что он есть. Но я предполагаю (но не проверял) это та же проблема с сортировкой - как вы сортируете IList<T>?
Заключение
Кажется, нет встроенного двоичного поиска для IList<T>. Для поиска и сортировки можно использовать методы First() и OrderBy() LINQ, но это будет иметь худший результат. Реализация его самостоятельно (как метод расширения) кажется лучшим, что вы можете сделать.