Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Array.BinarySearch-Methode: (Array, Object, IComparer)

 

Durchsucht ein ganzes sortiertes eindimensionales Array mithilfe der angegebenen IComparer-Schnittstelle nach einem Wert.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

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

Parameter

array
Type: System.Array

Das zu durchsuchende sortierte eindimensionale Array.

value
Type: System.Object

Das Objekt, nach dem gesucht werden soll.

comparer
Type: System.Collections.IComparer

Die IComparer-Implementierung, die beim Vergleich von Elementen verwendet werden soll.

- oder -

null, wenn die IComparable-Implementierung des jeweiligen Elements verwendet werden soll.

Rückgabewert

Type: System.Int32

Der Index des angegebenen value im angegebenen array, sofern value gefunden wurde, andernfalls eine negative Zahl. Wenn value nicht gefunden wurde und value kleiner als mindestens ein Element in array ist, entspricht die zurückgegebene negative Zahl dem bitweisen Komplement des Indexes des ersten Elements, das größer als value ist. Wenn value nicht gefunden wurde und value größer als alle Elemente in array ist, entspricht die zurückgegebene negative Zahl dem bitweisen Komplement (des Indexes des letzten Elements plus 1). Wenn diese Methode mit einem nicht sortierten array aufgerufen wird, kann der Rückgabewert falsch sein und selbst dann eine negative Zahl zurückgegeben werden, wenn value in array vorhanden ist.

Exception Condition
ArgumentNullException

array ist null.

RankException

array ist mehrdimensional.

ArgumentException

comparer ist null, und value verfügt über einen Typ, der nicht mit den Elementen von array kompatibel ist.

InvalidOperationException

comparer istnull, value implementiert nicht die IComparable-Schnittstelle, und bei der Suche wird ein Element gefunden, das die IComparable-Schnittstelle nicht implementiert.

Diese Methode unterstützt keine Suchen von Arrays, die negative Indizes enthalten. arraymuss vor dem Aufrufen dieser Methode sortiert werden.

Wenn die Array enthält keinen den angegebenen Wert gibt die Methode eine negative ganze Zahl zurück. Sie können die bitweiser Komplementoperator anwenden (~ in c# Not in Visual Basic) auf das Ergebnis negativ, um einen Index zu erzeugen. Wenn dieser Index einer ist größer als die obere Grenze des Arrays, es sind keine Elemente größer als value im Array. Andernfalls ist der Index des ersten Elements, das größer ist als value.

Der Vergleich wird bestimmt, wie die Elemente verglichen werden. Beispielsweise können Sie eine System.Collections.CaseInsensitiveComparer als Vergleich Groß-/Kleinschreibung Zeichenfolgensuche ausführen.

Wenn comparer nicht null, die Elemente der array verglichen werden, auf den angegebenen Wert mit dem angegebenen IComparer Implementierung. Die Elemente der array muss bereits in das Erhöhen des Werts gemäß der Sortierreihenfolge von definierten sortiert werden comparerist, andernfalls das Ergebnis möglicherweise nicht korrekt.

Wenncomparer ist null, der Vergleich erfolgt mithilfe der IComparable Implementierung, die durch das Element selbst oder durch den angegebenen Wert bereitgestellt. Die Elemente der array muss bereits in das Erhöhen des Werts gemäß der Sortierreihenfolge von definierten sortiert werden die IComparable Implementierung; anderenfalls das Ergebnis möglicherweise nicht korrekt.

System_CAPS_noteHinweis

Wenn comparer ist null und value implementiert nicht die IComparable Schnittstelle, die Elemente der array nicht getestet werden IComparable vor Beginn der Suche. Eine Ausnahme wird ausgelöst, wenn die Suche ein Element gefunden wird, die nicht implementiert IComparable.

Doppelte Elemente sind zulässig. Wenn die Array enthält mehr als ein Element gleich value, die Methode gibt den Index nur ein vorkommen, aber nicht unbedingt das erste Schema zurück.

nullkann mit anderen Verweistypen immer verglichen werden. Daher geben Vergleiche mit null eine Ausnahme nicht generiert.

System_CAPS_noteHinweis

Für jedes Element getestet value übergeben wird, an die entsprechende IComparable -Implementierung, auch wenn value ist null. D. h. die IComparable Implementierung bestimmt, wie ein angegebenes Element zu vergleicht null.

Diese Methode ist eine O (Log n)-Vorgang, in dem n ist die Length von array.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: