ReadOnlySpan<T>.Enumerator ReadOnlySpan<T>.Enumerator ReadOnlySpan<T>.Enumerator ReadOnlySpan<T>.Enumerator Struct

Definition

Stellt einen Enumerator für diese Elemente eines ReadOnlySpan<T>-Elements bereit.Provides an enumerator for the elements of a ReadOnlySpan<T>.

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

Typparameter

T
Vererbung
ReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.EnumeratorReadOnlySpan<T>.Enumerator

Hinweise

Die C# foreach - C# Sprache und die for each-Sprache... Das nächste Konstrukt in Visual Basic verbirgt die Komplexität von Enumeratoren.The C# foreach of the C# language and the For Each...Next construct in Visual Basic hides the complexity of enumerators. Anstatt den Enumerator direkt zu manipulieren, wird foreach die For Each...Next Verwendung von oder empfohlen.Instead of directly manipulating the enumerator, using foreach or For Each...Next is recommended.

Anfänglich wird der Enumerator vor dem ersten Element in der ReadOnlySpan<T>positioniert.Initially, the enumerator is positioned before the first element in the ReadOnlySpan<T>. An dieser Position ist Current nicht definiert.At this position, Current is undefined. Sie müssen aufzurufen MoveNext , um den Enumerator vor dem Lesen des Werts ReadOnlySpan<T> von Currentauf das erste Element in der zu setzen.You must call MoveNext to advance the enumerator to the first item in the ReadOnlySpan<T> before reading the value of Current.

CurrentGibt den gleichen Wert zurück MoveNext , bis aufgerufen wird.Current returns the same value until MoveNext is called. MoveNextlegt Current auf das nächste Element in der ReadOnlySpan<T>fest.MoveNext sets Current to the next item in the ReadOnlySpan<T>.

Wenn MoveNext das Ende ReadOnlySpan<T>von übergibt, wird MoveNext zurück falsegegeben.If MoveNext passes the end of the ReadOnlySpan<T>, MoveNext returns false. Wenn sich der Enumerator in diesem Zustand befindet, geben nachfolg MoveNext Ende Aufrufe false von Current ebenfalls zurück und sind nicht definiert.When the enumerator is at this state, subsequent calls to MoveNext also return false and Current is undefined. Sie können nicht Current ReadOnlySpan<T> erneut auf das erste Element im festlegen. stattdessen müssen Sie eine neue Enumeratorinstanz erstellen.You cannot set Current to the first item in the ReadOnlySpan<T> again; you must create a new enumerator instance instead.

Obwohl der ReadOnlySpan<T> auf dem Stapel zugeordnet ist, sind die zugrunde liegenden Daten, ReadOnlySpan<T> auf die verweist, möglicherweise nicht.Though the ReadOnlySpan<T> is allocated on the stack, the underlying data on which the ReadOnlySpan<T> points to, may not be. Daher ist die Enumeration durch eine ReadOnlySpan<T> intrinsisch keine Thread sichere Prozedur.Therefore, enumerating through a ReadOnlySpan<T> is intrinsically not a thread-safe procedure. Um die Thread Sicherheit während der Enumeration zu gewährleisten, müssen Sie eine eigene Synchronisierung implementieren.To guarantee thread safety during enumeration, you must implement your own synchronization.

Anders als bei einigen anderen enumeratorstrukturen in .net ReadOnlySpan<T>.Enumerator:Unlike some other enumerator structures in .NET, the ReadOnlySpan<T>.Enumerator:

  • Implementiert nicht die- IEnumerator Schnitt IEnumerator<T> Stelle oder die-Schnittstelle.Does not implement the IEnumerator or IEnumerator<T> interface. Der Grund hierfür ReadOnlySpan<T>.Enumerator ist, dass eine ref-Struktur ist und nicht gekapselt werden kann.This is because ReadOnlySpan<T>.Enumerator is a ref struct and cannot be boxed.

  • Enthält keine Reset -Methode, die den Enumerator auf seine anfängliche Position vor dem ersten Element in der Spanne festlegen kann.Does not include a Reset method, which can set the enumerator to its initial position before the first element in the span. (Die IEnumerator.Reset() -Methode muss als Teil der-Schnittstelle implementiert werden, aber die meisten Implementierungen lösen entweder eine Ausnahme aus oder stellen keine Implementierung bereit.)(The IEnumerator.Reset() method must be implemented as part of the interface, but most implementors either throw an exception or provide no implementation.)

Eigenschaften

Current Current Current Current

Ruft einen Verweis auf das Element an der aktuellen Position des Enumerators ab.Gets a reference to the item at the current position of the enumerator.

Methoden

MoveNext() MoveNext() MoveNext() MoveNext()

Legt den Enumerator auf das nächste Element von ReadOnlySpan<T> fest.Advances the enumerator to the next item of the ReadOnlySpan<T>.

Gilt für: