简单的问题 - 给定一个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方法进行搜索和排序,但它可能会受到性能影响.自己实现它(作为扩展方法)似乎是你能做到的最好的.