YSearch (T) Verfahren (T, T) (System)

Das Objekt zu suchen.

Rückgabewert

Der Index des angegebenen Wertes im angegebenen Array. wenn der Wert gefunden wird; andernfalls eine negative Zahl. Wenn der Wert nicht gefunden wird und der Wert geringer ist als ein oder mehr Elemente in der Anordnung. die negative Zahl ist das bitweise Komplement des Index des ersten Elements zurückgeführt, die größer als Wert. Wenn der Wert nicht gefunden wird und der Wert ist größer als alle Elemente in einem Array. die negative Zahl ist die bitweise Komplement (der Index des letzten Elements plus 1) zurückgeführt. Wenn dieses Verfahren mit einem nicht-sortiertes Array genannt. Der Rückgabewert kann falsch sein und eine negative Zahl zurückgegeben werden könnte, auch wenn der Wert in dem Feld vorhanden ist.

Typ Parameter

Die Art der Elemente des Arrays.

Diese Methode bietet keine Unterstützung für Arrays zu suchen, die negativen Indizes enthalten. Array muss vor dem Aufruf dieser Methode sortiert werden.

Wenn Array nicht den festgelegten Wert enthält, gibt die Methode eine negative ganze Zahl ist. Sie können das bitweise Komplement-Operator gelten (

in C #, nicht in Visual Basic) mit dem negativen Ergebnis einen Index zu erzeugen. Wenn dieser Index zu der Größe des Arrays gleich ist, gibt es keine Elemente größer als der Wert in dem Array. Andernfalls ist es der Index des ersten Elements, der größer ist als der Wert ist.

T müssen die IComparable implementieren generische Schnittstelle, die für Vergleiche verwendet wird. Die Elemente des Arrays müssen bereits in zunehmendem Wert sortiert werden entsprechend der Reihenfolge, um durch die IComparable definiert Implementierung; Andernfalls könnte das Ergebnis falsch sein.

Doppelte Elemente sind erlaubt. Wenn das Array enthält mehr als ein Element gleich dem Wert ist. Das Verfahren gibt den Index von nur einer der Vorkommen und nicht notwendigerweise der erste.

null kann immer mit einem anderen Referenztyp verglichen werden; daher Vergleiche mit null keine Ausnahme erzeugen.

Für jedes Element getestet wird Wert auf die entsprechende IComparable geben Implementierung, auch wenn der Wert null ist. Das heißt, die IComparable Implementierung bestimmt, wie ein gegebenes Element auf Null vergleicht.

Das folgende Codebeispiel zeigt die Sortierung (T []) generische Methode Überlastung und die Binary (T [], T) generic -Methodenüberladung. Ein Array von Zeichenketten erzeugt wird, in keiner bestimmten Reihenfolge.

Das Array wird angezeigt, sortiert und wieder angezeigt. Arrays müssen in Reihenfolge sortiert werden, um die Binary zu verwenden Methode.

Die Anrufe an die Sortierung und Binary generische Methoden sehen nicht anders aus Anrufen zu ihren nicht-generischen Pendants, weil Visual Basic, C # und C den Typen des generischen Typparameters vom Typ des ersten Arguments ++ zu schließen. Wenn Sie die Ildasm.exe (IL Disassembler) verwenden, um das Microsoft Intermediate Language (MSIL) zu untersuchen, können Sie sehen, dass die generischen Methoden aufgerufen werden.

die Binary (T [], T) generic -Methodenüberladung wird dann für die zwei Zeichenketten zu suchen, verwendet, eine, die nicht in der Anordnung ist, und eine, die ist. Die Anordnung und der Rückgabewert der Binary Verfahren werden die ShowWhere generische Methode übergeben, die den Indexwert zeigt, wenn die Zeichenfolge gefunden wird, und sonst wird die Elemente des Suchtext zwischen fallen würde, wenn es in der Anordnung ist. Der Index ist negativ, wenn die Zeichenkette nicht in dem Array ist, so dass die Methode ShowWhere das bitweise Komplement nimmt (das

Operator in C # und Visual C ++, Xor -1 in Visual Basic), um den Index des ersten Elements in der Liste zu erhalten, die größer ist als die Suchzeichenfolge ist.