このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
MSDN ライブラリ
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Array.BinarySearch メソッド (Array, Object, IComparer)

2013/12/12

指定した IComparer インターフェイスを使用して、1 次元の並べ替え済み Array 全体の中から値を検索します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public static int BinarySearch(
	Array array,
	Object value,
	IComparer comparer
)

パラメーター

array
型: System.Array
検索対象となる並べ替え済みの 1 次元 Array
value
型: System.Object
検索するオブジェクト。
comparer
型: System.Collections.IComparer
要素を比較する場合に使用する IComparer 実装。
または
各要素の IComparable 実装を使用する場合は null

戻り値

型: System.Int32
指定した value が存在する場合は、指定した array におけるその value のインデックス。value が見つからず、valuearray 内の 1 つ以上の要素よりも小さい場合は、負の値。これは、value より大きい最初の要素のインデックスのビットごとの補数となります。value が見つからず、valuearray 内のどの要素よりも大きい場合は、負の値。これは、最後の要素のインデックス + 1 のビットごとの補数となります。

例外条件
ArgumentNullException

arraynull です。

RankException

array が多次元です。

ArgumentException

comparernull で、value の型に array の要素との互換性がありません。

InvalidOperationException

comparernull で、valueIComparable インターフェイスが実装されておらず、検索時に IComparable インターフェイスが実装されていない要素が検出されます。

指定した値が Array に格納されていない場合、このメソッドは負の整数を返します。負の結果にビットごとの補数演算子 (~) を適用 (Visual Basic の場合は、負の結果と -1 を Xor 演算) して、インデックスを求めることができます。このインデックスが配列のサイズ以上の値である場合、その配列内に value より大きい要素はありません。それ以外の場合、このインデックスが、value より大きい最初の要素のインデックスになります。

比較子は、要素を比較する方法をカスタマイズします。

comparernull でない場合、array の要素は、指定した IComparer 実装を使用して、指定した値と比較されます。array の要素は、comparer によって定義された並べ替え順序に基づいて、あらかじめ昇順に並べ替えられている必要があります。並べ替えが済んでいない場合は、結果が正しくない可能性があります。

comparernull の場合は、要素自体または指定した値によって提供される IComparable の実装を使用して比較が行われます。array の要素は、IComparable 実装によって定義された並べ替え順序に基づいて、あらかじめ昇順に並べ替えられている必要があります。並べ替えが済んでいない場合は、結果が正しくない可能性があります。

メモメモ:

comparernull で、valueIComparable インターフェイスが実装されていない場合、検索の開始前に array の要素に IComparable が実装されているかどうかテストされません。検索時に IComparable が実装されていない要素が検出されると、例外がスローされます。

重複する要素を使用できます。Arrayvalue と等しい要素が複数含まれている場合、このメソッドは 1 つの要素のインデックスしか返しませんが、必ずしも該当する 1 番目の要素のインデックスとは限りません。

null は、常に他の参照型と比較できるため、null との比較によって例外が生成されることはありません。並べ替え処理では、null は、他のすべてのオブジェクトより小さいと見なされます。

メモメモ:

   テストされるすべての要素について、value は適切な IComparable 実装に渡されます。これは valuenull である場合も同じです。つまり、特定の要素を null と比較する方法は、IComparable 実装によって決定されます。

このメソッドは、O(log n) 操作です。ここで、narrayLength です。

Windows Phone OS

サポート: 8.0

表示:
© 2015 Microsoft