Freigeben über


Queue.GetEnumerator-Methode

Gibt einen Enumerator zurück, der die Queue durchläuft.

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

Syntax

'Declaration
Public Overridable Function GetEnumerator As IEnumerator
'Usage
Dim instance As Queue
Dim returnValue As IEnumerator

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

Rückgabewert

Ein IEnumerator für die Queue.

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 dem letzten Element in der Auflistung positioniert, und MoveNext gibt false zurück. Wenn sich der Enumerator an dieser Position befindet, geben nachfolgende Aufrufe von MoveNext ebenfalls false zurück. Wenn der letzte Aufruf von MoveNextfalse zurückgegeben hat, 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 so lange 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.

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

Queue-Klasse
Queue-Member
System.Collections-Namespace
IEnumerator-Schnittstelle