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, Int32, Int32, Object)

 

Durchsucht einen Bereich von Elementen in einem sortierten eindimensionalen Array mithilfe der IComparable-Schnittstelle, die von jedem Element des Arrays und durch den angegebenen Wert implementiert wird, nach einem Wert.

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

public static int BinarySearch(
	Array array,
	int index,
	int length,
	object value
)

Parameter

array
Type: System.Array

Das zu durchsuchende sortierte eindimensionale Array.

index
Type: System.Int32

Der Startindex des zu durchsuchenden Bereichs.

length
Type: System.Int32

Die Länge des zu durchsuchenden Bereichs.

value
Type: System.Object

Das Objekt, nach dem gesucht 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.

ArgumentOutOfRangeException

index ist kleiner als die untere array-Grenze.

- oder -

length ist kleiner als Null.

ArgumentException

index und length geben keinen gültigen Bereich im array an.

- oder -

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

InvalidOperationException

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.

Entweder value oder jedes Element des array implementieren müssen die IComparable -Schnittstelle, die für Vergleiche verwendet wird. 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 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 length.

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: