1 次元の並べ替え済み Array の各要素および指定した値によって実装されている IComparable インターフェイスを使用して、その Array 範囲の中から値を検索します。
Overloads Public Shared Function BinarySearch( _
ByVal array As Array, _ ByVal index As Integer, _ ByVal length As Integer, _ ByVal value As Object _) As Integer
[C#]
public static int BinarySearch(Arrayarray,intindex,intlength,objectvalue);
[C++]
public: static int BinarySearch(Array* array,intindex,intlength,Object* value);
[JScript]
public static function BinarySearch(
array : Array,index : int,length : int,value : Object) : int;
パラメータ
- array
検索する 1 次元 Array 。 - index
検索範囲の開始位置を示すインデックス。 - length
検索する範囲の長さ。 - value
検索するオブジェクト。
戻り値
value が見つかった場合は、指定した array での指定した value のインデックス。
または
value が見つからず、 value が array 内の 1 つ以上の要素よりも小さい場合は、負の値。これは、 value より大きい最初の要素のインデックスのビットごとの補数となります。
または
value が見つからず、 value が array 内のどの要素よりも大きい場合は、負の値。これは、最後の要素のインデックス + 1 のビットごとの補数となります。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | array が null 参照 (Visual Basic では Nothing) です。 |
RankException | array が多次元です。 |
ArgumentOutOfRangeException | index が array の下限より小さい値です。
または length が 0 未満です。 |
ArgumentException | index および length が array 内の有効な範囲を指定していません。
または value が、array の要素と互換性がない型です。 |
InvalidOperationException | value と、array の要素が、いずれも IComparable インターフェイスを実装していません。 |
解説
value か、または array の各要素のいずれかが、比較に使用される IComparable インターフェイスを実装する必要があります。array の要素が、 IComparable 実装に基づいて、昇順にまだ並べ替えられていない場合は、結果が正しくない可能性があります。
重複する要素を使用できます。 Array に value と等しい要素が複数含まれている場合、このメソッドは 1 つの要素のインデックスしか返しませんが、必ずしも該当する 1 番目の要素のインデックスとは限りません。
null 参照 (Visual Basic では Nothing) は、常に他の任意の型と比較できます。したがって、 null 参照 (Nothing) との比較で、例外は生成されません。並べ替え処理では、 null 参照 (Nothing) は、他のすべてのオブジェクトより小さいと見なされます。
指定した値が Array に格納されていない場合、このメソッドは負の整数を返します。返されたこの負数にビットごとの補数演算子 (~) を適用し、指定した検索値よりも大きい要素がある場合は、そのうちの最初の要素のインデックスを生成できます。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard
参照
Array クラス | Array メンバ | System 名前空間 | Array.BinarySearch オーバーロードの一覧 | IComparable | Sort | カルチャを認識しない配列の操作の実行