Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

ArrayList.BinarySearch-Methode (Int32, Int32, Object, IComparer)

Durchsucht mithilfe des angegebenen Vergleichs einen Bereich von Elementen in der sortierten ArrayList nach einem Element und gibt den nullbasierten Index des Elements zurück.

Namespace:  System.Collections
Assembly:  mscorlib (in mscorlib.dll)
public virtual int BinarySearch(
	int index,
	int count,
	Object value,
	IComparer comparer
)

Parameter

index
Typ: System.Int32
Der nullbasierte Startindex des zu durchsuchenden Bereichs.
count
Typ: System.Int32
Die Länge des zu durchsuchenden Bereichs.
value
Typ: System.Object
Das zu suchende Object. Der Wert kann null sein.
comparer
Typ: System.Collections.IComparer
Die IComparer-Implementierung, die beim Vergleich von Elementen verwendet werden soll.
- oder -
null , wenn der Standardvergleich verwendet werden soll. Dies ist die IComparable-Implementierung des jeweiligen Elements.

Rückgabewert

Typ: System.Int32
Der nullbasierte Index von value in der sortierten ArrayList, sofern value gefunden wird, andernfalls eine negative Zahl, die das bitweise Komplement des Indexes des nächsten Elements darstellt, das größer als value ist, oder, wenn es kein größeres Element gibt, das bitweise Komplement von Count.
AusnahmeBedingung
ArgumentException

index und count geben keinen gültigen Bereich in der ArrayList an.

– oder –

comparer ist null, und weder value noch die Elemente von ArrayList implementieren die IComparable-Schnittstelle.

InvalidOperationException

comparer ist null, und value hat nicht denselben Typ wie die Elemente der ArrayList.

ArgumentOutOfRangeException

index ist kleiner als 0.

– oder –

count ist kleiner als null.

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

Wenn comparer verfügbar ist, werden die Elemente der ArrayList unter Verwendung der angegebenen IComparer-Implementierung mit den angegebenen Werten verglichen. Die Elemente von ArrayList müssen bereits gemäß der durch comparer definierten Sortierreihenfolge aufsteigend sortiert werden, da ansonsten das Ergebnis möglicherweise falsch ist.

Wenn comparer den Wert null hat, wird der Vergleich mithilfe der IComparable-Implementierung durchgeführt, die entweder durch das Element selbst oder durch den angegebenen Wert bereitgestellt wird. Die Elemente von ArrayList müssen bereits gemäß der durch die IComparable-Implementierung definierten Sortierreihenfolge aufsteigend sortiert werden, da ansonsten das Ergebnis möglicherweise falsch ist.

Ein Vergleich von null mit einem beliebigen Typ ist zulässig und generiert beim Verwenden von IComparable keine Ausnahme. Beim Sortieren ist null kleiner als jedes andere Objekt.

Wenn ArrayList mehr als ein Element mit demselben Wert enthält, gibt die Methode nur ein Vorkommen zurück. Es wird nicht notwendigerweise das erste Vorkommen zurückgegeben, sondern es kann ein beliebiges Vorkommen zurückgegeben werden.

Wenn ArrayList den angegebenen Wert nicht enthält, gibt die Methode eine negative ganze Zahl zurück. Auf diese negative ganze Zahl können Sie die bitweise Komplementoperation (~) anwenden, um den Index des ersten Elements abzurufen, das größer als der Suchwert ist. Beim Einfügen des Werts in die ArrayList sollte dieser Index als Einfügemarke verwendet werden, um die Sortierreihenfolge beizubehalten.

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

.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.