ReadOnlySpan<T>.Enumerator Struktur

Definition

Stellt einen Enumerator für die Elemente eines .ReadOnlySpan<T>

public: value class ReadOnlySpan<T>::Enumerator : System::Collections::Generic::IEnumerator<T>
public: value class ReadOnlySpan<T>::Enumerator
public ref struct ReadOnlySpan<T>.Enumerator : System.Collections.Generic.IEnumerator<T>
public ref struct ReadOnlySpan<T>.Enumerator
type ReadOnlySpan<'T>.Enumerator = struct
    interface IEnumerator<'T>
    interface IEnumerator
    interface IDisposable
type ReadOnlySpan<'T>.Enumerator = struct
Public Structure ReadOnlySpan(Of T).Enumerator
Implements IEnumerator(Of T)
Public Structure ReadOnlySpan(Of T).Enumerator

Typparameter

T
Vererbung
ReadOnlySpan<T>.Enumerator
Implementiert

Hinweise

C# foreach der C#-Sprache und der For Each... Als NächstesKonstrukt in Visual Basic die Komplexität von Enumeratoren ausblendet. Anstatt den Enumerator direkt zu bearbeiten, verwenden foreach oder For Each...Next wird empfohlen.

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

Current gibt denselben Wert zurück, bis MoveNext er aufgerufen wird. MoveNextwird Current auf das nächste Element in der .ReadOnlySpan<T>

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

Obwohl die ReadOnlySpan<T> Zuordnung auf dem Stapel erfolgt, sind die zugrunde liegenden Daten, auf die die ReadOnlySpan<T> Punkte verwiesen werden, möglicherweise nicht vorhanden. Daher ist das Aufzählen durch eine ReadOnlySpan<T> threadsichere Prozedur in der Regel keine threadsichere Prozedur. Um die Threadsicherheit während der Enumeration zu gewährleisten, müssen Sie ihre eigene Synchronisierung implementieren.

Im Gegensatz zu einigen anderen Enumerationsstrukturen in .NET, ReadOnlySpan<T>.Enumerator:

  • Implementiert weder die Schnittstelle noch die IEnumeratorIEnumerator<T> Schnittstelle. Dies liegt daran, dass ReadOnlySpan<T>.Enumerator es sich um eine Refstruktur handelt und nicht geschachtelt werden kann.

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

Eigenschaften

Name Beschreibung
Current

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

Methoden

Name Beschreibung
MoveNext()

Wechselt den Enumerator zum nächsten Element der .ReadOnlySpan<T>

Explizite Schnittstellenimplementierungen

Name Beschreibung
IDisposable.Dispose()

Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verknüpft sind.

IEnumerator.Current

Ruft das Element in der Auflistung an der aktuellen Position des Enumerators ab.

IEnumerator.Reset()

Legt den Enumerator auf seine Anfangsposition fest, die sich vor dem ersten Element in der Auflistung befindet.

IEnumerator<T>.Current

Ruft das Element in der Auflistung an der aktuellen Position des Enumerators ab.

Gilt für: