Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

IEnumerator.MoveNext-Methode: ()

 

Veröffentlicht: Oktober 2016

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

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

bool MoveNext()

Rückgabewert

Type: System.Boolean

true, wenn der Enumerator erfolgreich auf das nächste Element gesetzt wurde, false, wenn der Enumerator das Ende der Auflistung überschritten hat.

Exception Condition
InvalidOperationException

Die Auflistung wurde geändert, nachdem der Enumerator erstellt wurde.

Nach dem Erstellen eines Enumerators oder nach dem Reset -Methode aufgerufen wird, wird ein Enumerator vor das erste Element der Auflistung und der erste Aufruf von positioniert die MoveNext Methode setzt den Enumerator auf das erste Element der Auflistung.

Wenn MoveNext übergibt, die am Ende der Auflistung der Enumerator hinter dem letzten Element in der Auflistung positioniert ist und MoveNext gibt false. Wann ist der Enumerator an dieser Position nachfolgende Aufrufe von MoveNext auch zurückgeben false bis Reset aufgerufen wird.

Ein Enumerator bleibt gültig, solange die Auflistung unverändert ist. Wenn der Auflistung, z. B. hinzufügen geändert werden, ändern oder Löschen von Elementen, das der Enumerator unwiederbringlich ist ungültig, und der nächste Aufruf von MoveNext oder Reset löst eine InvalidOperationException.

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

// When you implement IEnumerable, you must also implement IEnumerator.
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();
            }
        }
    }
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: