バイナリーサーチ(BinarySearch)

C# で BinarySearch を使っているが、この関数は重複(同じ値の要素)があった場合に、どの要素番号を返すかは不定だ。できたら重複があったときは、値が違う境目まで求めて返してくれたほうが親切だと思う。不定な要素番号を返すまでにとどめておくほうが、シンプルな仕様でなまじ複雑な仕様よりはずっと良いとは思うが、戻り値の仕様書には「重複がある場合は、どの要素番号を返すかは不定です」のようなことを書いておいてほしいと思う。


あ、良く見たら、つぎのように書いてあった。
http://msdn.microsoft.com/ja-jp/library/ftfdbfx6.aspx

List<(Of <(T>)>) に同じ値の複数の要素が格納されている場合、メソッドは 1 つの要素だけを返します。必ずしも最初の要素ではなく、任意の要素が返されます。

If the List<(Of <(T>)>) contains more than one element with the same value, the method returns only one of the occurrences, and it might return any one of the occurrences, not necessarily the first one.