当使用List<T>
的BinarySearch方法查找一个不存在的元素时,我感到困惑。
我已经得到:
List<long> theList = {1, 3, 5, ...}.
theList.BInarySearch(0)
返回0,theList.BInarySearch(3)
返回1,符合预期。
然而,theList.BinarySearch(1)
返回-2,而不是我期望的-1。MSDN手册说:
"返回值:如果找到item,则为已排序List中item的基于零的索引;否则,它是比item大的下一个元素的索引的按位补数,或者如果没有更大的元素,则是Count的按位补数。"
“按位补数”?我错过了什么,为什么theList.BinarySearch(1) != -1
?
theList.BinarySearch(2)
吧?1
就在那里... - Kobi