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

IEnumerator.MoveNext-Methode

Setzt den Enumerator auf das nächste Element der Auflistung.

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

Rückgabewert

Typ: System.Boolean
true , wenn der Enumerator erfolgreich auf das nächste Element gesetzt wurde, false, wenn der Enumerator das Ende der Auflistung überschritten hat.
AusnahmeBedingung
InvalidOperationException

Die Auflistung wurde nach dem Erstellen des Enumerators geändert.

Nach dem Erstellen eines Enumerators oder nach dem Aufrufen der Reset-Methode wird ein Enumerator zunächst vor dem ersten Element der Auflistung positioniert. Der erste Aufruf der MoveNext-Methode legt den Enumerator auf das erste Element der Auflistung fest.

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, bis Reset aufgerufen wird.

Ein Enumerator bleibt gültig, solange die Auflistung nicht geändert wird. Wenn an der Auflistung Änderungen vorgenommen werden, z. B. durch Hinzufügen, Ändern oder Entfernen von Elementen, ist der Enumerator unwiderruflich ungültig, und der nächste Aufruf von MoveNext oder Reset löst eine InvalidOperationException aus.

Im folgenden Codebeispiel wird die Implementierung von IEnumerator-Schnittstellen für eine benutzerdefinierte Auflistung veranschaulicht. In diesem Beispiel wird MoveNext nicht explizit aufgerufen, sondern es wird zur Unterstützung der Verwendung von foreach (for each in Visual Basic) implementiert. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die IEnumerator-Schnittstelle.


public class PeopleEnum : IEnumerator
{
    public Person[] _people;

    // Enumerators are positioned before the first element
    // until the first MoveNext() call.
    int position = -1;

    public PeopleEnum(Person[] list)
    {
        _people = list;
    }

    public bool MoveNext()
    {
        position++;
        return (position < _people.Length);
    }

    public void Reset()
    {
        position = -1;
    }

    object IEnumerator.Current
    {
        get
        {
            return Current;
        }
    }

    public Person Current
    {
        get
        {
            try
            {
                return _people[position];
            }
            catch (IndexOutOfRangeException)
            {
                throw new InvalidOperationException();
            }
        }
    }
}


.NET Framework

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

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.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.