War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Array.BinarySearch<T>-Methode (T[], Int32, Int32, T, IComparer<T>)

Durchsucht einen Bereich von Elementen in einem sortierten eindimensionalen Array nach einem Wert, mithilfe der angegebenen generischen Schnittstelle IComparer<T>.

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

public static int BinarySearch<T>(
	T[] array,
	int index,
	int length,
	T value,
	IComparer<T> comparer
)

Typparameter

T

Der Typ der Elemente des Arrays.

Parameter

array
Typ: T[]
Das zu durchsuchende sortierte eindimensionale und nullbasierte Array.
index
Typ: System.Int32
Der Startindex des zu durchsuchenden Bereichs.
length
Typ: System.Int32
Die Länge des zu durchsuchenden Bereichs.
value
Typ: T
Das Objekt, nach dem gesucht werden soll.
comparer
Typ: System.Collections.Generic.IComparer<T>
Die IComparer<T>-Implementierung, die beim Vergleich von Elementen verwendet werden soll.
- oder -
null , wenn die IComparable<T>-Implementierung des jeweiligen Elements verwendet werden soll.

Rückgabewert

Typ: System.Int32
Der Index des angegebenen value im angegebenen array, sofern value gefunden wurde. Wenn value nicht gefunden wurde und value kleiner als ein oder mehr Elemente in array ist, eine negative Zahl, die das bitweise Komplement des Index des ersten Elements darstellt, das größer als value ist. Eine negative Zahl, die das bitweise Komplement von Index des letzten Elements + 1 darstellt, wenn value nicht gefunden wurde und value größer als alle Elemente in array ist.

AusnahmeBedingung
ArgumentNullException

array ist null.

ArgumentOutOfRangeException

index ist kleiner als die untere Grenze von array.

- oder -

length ist kleiner als 0 (null).

ArgumentException

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

- oder -

comparer ist null, und der Typ von value ist nicht mit den Elementen von array kompatibel.

InvalidOperationException

comparer ist null und T implementiert die generische Schnittstelle IComparable<T> nicht.

Diese Methode unterstützt das Suchen von Arrays, die negative Indizes enthalten, nicht. array muss vor dem Aufrufen dieser Methode sortiert werden.

Wenn das Array nicht den angegebenen Wert enthält, gibt die Methode eine negative Ganzzahl zurück. Sie können den bitweisen Komplementierungsoperator anwenden (| in C#, Not in Visual Basic) dem negativen Ergebnis, um eines Indexes zu erzeugen. Wenn dieser Index gleich der Größe des Arrays handelt, gibt es keine Elemente, die im Array größer sind als value. Andernfalls ist der Index des ersten Elements größer als value.

Der Vergleich bestimmt, wie die Elemente miteinander verglichen werden. Sie können z. B. einen System.Collections.CaseInsensitiveComparer als Comparer für die Suche nach Zeichenfolgen verwenden, bei der die Groß- und Kleinschreibung nicht berücksichtigt wird.

Wenn comparer nicht null ist, werden die Elemente von array unter Verwendung der angegebenen Implementierung der generischen IComparer<T>-Schnittstelle mit dem angegebenen Wert verglichen. Die Elemente von array müssen bereits gemäß der durch comparer definierten Sortierreihenfolge aufsteigend sortiert werden, da ansonsten das Ergebnis möglicherweise falsch ist.

Wenn comparernull ist, ist der Vergleich mit der generischen Schnittstellenimplementierung IComparable<T> ), die für Typen T bereitgestellt wird. Die Elemente von array müssen bereits gemäß der durch die IComparable<T>-Implementierung definierten Sortierreihenfolge aufsteigend sortiert werden, da ansonsten das Ergebnis möglicherweise falsch ist.

Mehrfach vorkommende Elemente sind zulässig. Wenn Array mehrere Elemente enthält, die gleich value sind, gibt die Methode nur den Index eines Vorkommens zurück, das nicht unbedingt das erste sein muss.

null kann immer mit beliebigen Referenztypen verglichen werden. Daher generieren Vergleiche mit null bei Verwendung von IComparable<T> keine Ausnahme.

HinweisHinweis

   Bei jedem geprüften Element wird value an die entsprechende IComparable<T>-Implementierung übergeben, auch wenn valuenull ist. Das heißt, die IComparable<T>-Implementierung bestimmt, wie ein bestimmtes Element mit null verglichen wird.

Diese Methode ist eine O(log n)-Operation, wobei nlength ist.

.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft