ReadOnlySpan<T>.Enumerator Struktur

Definition

Stellt einen Enumerator für diese Elemente eines ReadOnlySpan<T>-Elements bereit.

public: value class ReadOnlySpan<T>::Enumerator
public ref struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator

Typparameter

T
Vererbung
ReadOnlySpan<T>.Enumerator

Hinweise

Der C# -Foreach der Sprache C# und der For Each... Das nächste Konstrukt in Visual Basic blendet die Komplexität von Enumeratoren aus. Anstatt den Enumerator direkt zu bearbeiten, wird die Verwendung von foreach oder For Each...Next empfohlen.

Zunächst wird der Enumerator vor dem ersten Element im ReadOnlySpan<T>positioniert. An dieser Position ist Current nicht definiert. Sie müssen aufrufen MoveNext , um den Enumerator zum ersten Element in der zu wechseln, ReadOnlySpan<T> bevor Sie den Wert von Currentlesen.

Current gibt den gleichen Wert zurück, bis MoveNext aufgerufen wird. MoveNextwird auf das nächste Element im ReadOnlySpan<T>festgelegtCurrent.

Wenn MoveNext das Ende von ReadOnlySpan<T>übergibt, MoveNext gibt zurück false. Wenn sich der Enumerator in diesem Zustand befindet, werden nachfolgende Aufrufe von MoveNext ebenfalls zurückgegeben false und Current sind nicht definiert. Sie können nicht auf das erste Element im ReadOnlySpan<T> erneut festlegenCurrent. Stattdessen müssen Sie eine neue Enumeratorinstanz erstellen.

Obwohl auf ReadOnlySpan<T> dem Stapel zugeordnet ist, sind die zugrunde liegenden Daten, auf die der ReadOnlySpan<T> verweist, möglicherweise nicht. Daher ist das Aufzählen durch eine ReadOnlySpan<T> intrinsisch kein threadsicheres Verfahren. Um die Threadsicherheit während der Enumeration zu gewährleisten, müssen Sie eine eigene Synchronisierung implementieren.

Im Gegensatz zu einigen anderen Enumeratorstrukturen in .NET ist :ReadOnlySpan<T>.Enumerator

  • Implementiert die IEnumerator -Schnittstelle oder IEnumerator<T> nicht. Dies liegt daran, dass ReadOnlySpan<T>.Enumerator eine Verweisstruktur ist und nicht geschachtelt werden kann.

  • Enthält Reset keine -Methode, die den Enumerator auf seine Anfangsposition vor dem ersten Element in der Spanne festlegen kann. (Die IEnumerator.Reset() -Methode muss als Teil der -Schnittstelle implementiert werden, aber die meisten Implementierer lösen entweder eine Ausnahme aus oder stellen keine Implementierung bereit.)

Eigenschaften

Current

Ruft einen Verweis auf das Element an der aktuellen Position des Enumerators ab.

Methoden

MoveNext()

Legt den Enumerator auf das nächste Element von ReadOnlySpan<T> fest.

Gilt für: