SortedDictionary<TKey,TValue>.KeyCollection.GetEnumerator Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt einen Enumerator zurück, der durch die SortedDictionary<TKey,TValue>.KeyCollectionEnumerator durchläuft.
public:
System::Collections::Generic::SortedDictionary<TKey, TValue>::KeyCollection::Enumerator GetEnumerator();
public System.Collections.Generic.SortedDictionary<TKey,TValue>.KeyCollection.Enumerator GetEnumerator();
member this.GetEnumerator : unit -> System.Collections.Generic.SortedDictionary<'Key, 'Value>.KeyCollection.Enumerator
Public Function GetEnumerator () As SortedDictionary(Of TKey, TValue).KeyCollection.Enumerator
Gibt zurück
Eine SortedDictionary<TKey,TValue>.KeyCollection.Enumerator Struktur für die SortedDictionary<TKey,TValue>.KeyCollection.
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. An dieser Position Current ist nicht definiert. Sie müssen die MoveNext Methode aufrufen, um den Enumerator zum ersten Element der Auflistung zu wechseln, bevor Sie den Wert von Current.
Die Current Eigenschaft gibt dasselbe Objekt zurück, bis MoveNext sie aufgerufen wird. 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ückgegebene falseCurrent Aufruf MoveNext nicht definiert ist. Sie können nicht erneut auf das erste Element der Auflistung festlegen Current . Stattdessen müssen Sie eine neue Enumerationsinstanz erstellen.
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 IEnumerator.Reset löst einen InvalidOperationException.
Der Enumerator hat keinen exklusiven Zugriff auf die Sammlung; Daher ist das Aufzählen durch eine Sammlung intrinsisch keine threadsichere Prozedur. Um die Threadsicherheit während der Enumeration zu gewährleisten, können Sie die Sammlung während der gesamten Enumeration sperren. Damit auf die Sammlung über mehrere Threads zum Lesen und Schreiben zugegriffen werden kann, müssen Sie eine eigene Synchronisierung implementieren.
Standardimplementierungen von Auflistungen im System.Collections.Generic Namespace werden nicht synchronisiert.
Bei dieser Methode handelt es sich um einen O(Log n)-Vorgang, bei dem n eine Reihe von Elementen in einer Auflistung ist.