SortedList.IEnumerable.GetEnumerator Methode

Definition

Gibt einen IEnumerator Wert zurück, der durch die SortedList.

 virtual System::Collections::IEnumerator ^ System.Collections.IEnumerable.GetEnumerator() = System::Collections::IEnumerable::GetEnumerator;
System.Collections.IEnumerator IEnumerable.GetEnumerator();
abstract member System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
override this.System.Collections.IEnumerable.GetEnumerator : unit -> System.Collections.IEnumerator
Function GetEnumerator () As IEnumerator Implements IEnumerable.GetEnumerator

Gibt zurück

Ein IEnumerator für das SortedList.

Implementiert

Hinweise

Die foreach-Anweisung der C#-Sprache (for each in Visual Basic) blendet die Komplexität der Enumerationen aus. Daher wird die Verwendung foreach empfohlen, anstatt den Enumerator direkt zu bearbeiten.

Enumeratoren können verwendet werden, um die Daten in der Auflistung zu lesen, aber sie können nicht zum Ändern der zugrunde liegenden Auflistung verwendet werden.

Zunächst wird der Enumerator vor dem ersten Element in der Auflistung positioniert. Reset bringt den Enumerator auch wieder an diese Position zurück. An dieser Position löst der Aufruf Current eine Ausnahme aus. Daher müssen Sie aufrufen MoveNext , um den Enumerator zum ersten Element der Auflistung vor dem Lesen des Werts Currentvon .

Current gibt dasselbe Objekt zurück, bis eine MoveNext oder Reset mehrere Aufrufe ausgeführt werden. MoveNext wird auf das nächste Element festgelegt Current .

Wenn MoveNext das Ende der Auflistung übergeben wird, wird der Enumerator nach dem letzten Element in der Auflistung positioniert und MoveNext zurückgegeben false. Wenn sich der Enumerator an dieser Position befindet, werden nachfolgende Aufrufe MoveNext zurückgegeben false. Wenn der letzte zurückzugebende MoveNextfalse Aufruf Current eine Ausnahme auslöst. Wenn Sie das erste Element der Auflistung erneut festlegen möchten Current , können Reset Sie gefolgt von MoveNext.

Ein Enumerator bleibt gültig, solange die Auflistung unverändert bleibt. Wenn Änderungen an der Auflistung vorgenommen werden, z. B. Hinzufügen, Ändern oder Löschen von Elementen, wird der Enumerator unwiderruflich ungültig und der nächste Aufruf an MoveNext oder Reset löst einen InvalidOperationException. Wenn die Auflistung zwischen MoveNext und dem CurrentCurrent Element geändert wird, auf das sie festgelegt ist, auch wenn der Enumerationsgeber bereits ungültig ist.

Der Enumerator hat keinen exklusiven Zugriff auf die Sammlung; Daher ist das Aufzählen durch eine Sammlung intrinsisch keine threadsichere Prozedur. Selbst wenn eine Auflistung synchronisiert wird, können andere Threads die Auflistung weiterhin ändern, wodurch der Enumerator eine Ausnahme auslöst. Um die Threadsicherheit während der Enumeration zu gewährleisten, können Sie die Auflistung entweder während der gesamten Enumeration sperren oder die Ausnahmen erfassen, die sich aus Änderungen ergeben, die von anderen Threads vorgenommen wurden.

Diese Methode ist ein O(1) Vorgang.

Gilt für:

Weitere Informationen