Freigeben über


Hashtable.GetEnumerator-Methode

Gibt einen IDictionaryEnumerator zurück, der die Hashtable durchläuft.

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

Syntax

'Declaration
Public Overridable Function GetEnumerator As IDictionaryEnumerator
'Usage
Dim instance As Hashtable
Dim returnValue As IDictionaryEnumerator

returnValue = instance.GetEnumerator
public virtual IDictionaryEnumerator GetEnumerator ()
public:
virtual IDictionaryEnumerator^ GetEnumerator ()
public IDictionaryEnumerator GetEnumerator ()
public function GetEnumerator () : IDictionaryEnumerator

Rückgabewert

Ein IDictionaryEnumerator für die Hashtable.

Hinweise

Die foreach-Anweisung der Programmiersprache C# (for each in Visual Basic) verbirgt die Komplexität der Enumeratoren. Daher wird empfohlen, foreach zu verwenden, anstatt den Enumerator direkt zu bearbeiten.

Mit Enumeratoren können die Daten in der Auflistung gelesen werden, sie können jedoch nicht zum Ändern der zugrunde liegenden Auflistung verwendet werden.

Anfangs wird der Enumerator vor dem ersten Element in der Auflistung positioniert. Reset setzt den Enumerator ebenfalls auf diese Position zurück. An dieser Position ist Current nicht definiert. Daher muss der Enumerator durch einen Aufruf von MoveNext auf das erste Element der Auflistung gesetzt werden, bevor der Wert von Current gelesen werden kann.

Current gibt so lange dasselbe Objekt zurück, bis MoveNext oder Reset aufgerufen wird. MoveNext setzt Current auf das nächste Element.

Wenn MoveNext das Ende der Auflistung erreicht, wird der Enumerator hinter das letzte Element in der Auflistung gesetzt, und MoveNext gibt false zurück. Wenn sich der Enumerator an dieser Position befindet, geben nachfolgende Aufrufe von MoveNext ebenfalls false zurück. Wenn beim letzten Aufruf von MoveNextfalse zurückgegeben wurde, ist Current nicht definiert. Um Current wieder auf das erste Element der Auflistung zu setzen, können Sie Reset gefolgt von MoveNext aufrufen.

Ein Enumerator bleibt solange gültig, bis die Auflistung geändert wird. Wenn an der Auflistung Änderungen vorgenommen werden, z. B. durch Hinzufügen, Ändern oder Löschen von Elementen, ist der Enumerator unwiderruflich ungültig und das zugehörige Verhalten nicht definiert.

Der Enumerator hat keinen exklusiven Zugriff auf die Auflistung. Daher ist die Enumeration einer Auflistung systemintern keine threadsichere Prozedur. Um Threadsicherheit während der Enumeration zu gewährleisten, können Sie die Auflistung während der gesamten Enumeration sperren. Um den Lese- und Schreibzugriff auf diese Auflistung durch mehrere Threads zuzulassen, müssen Sie eine eigene Synchronisierung implementieren.

Diese Methode ist eine O(1)-Operation.

Da das Serialisieren und Deserialisieren einen Enumerators für eine Hashtable zu einer Neuanordnung der Elemente führen kann, ist es nicht möglich, die Enumeration ohne Aufrufen der Reset-Methode fortzusetzen.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

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

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

Hashtable-Klasse
Hashtable-Member
System.Collections-Namespace
IDictionaryEnumerator
IEnumerator