ReadOnlySpan<T>.Enumerator Struktur

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>.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 die Verwendung von foreach oder For Each...Next empfohlen.Instead of directly manipulating the enumerator, using foreach or For Each...Next is recommended.

Anfänglich wird der Enumerator vor dem ersten Element im 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 MoveNext aufgerufen werden, um den Enumerator vor dem Lesen des Werts von Currentauf das erste Element im ReadOnlySpan<T> zu setzen.You must call MoveNext to advance the enumerator to the first item in the ReadOnlySpan<T> before reading the value of Current.

Current gibt denselben Wert zurück, bis MoveNext aufgerufen wird.Current returns the same value until MoveNext is called. MoveNext legt 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 der ReadOnlySpan<T>übergibt, gibt MoveNext falsezurück.If MoveNext passes the end of the ReadOnlySpan<T>, MoveNext returns false. Wenn sich der Enumerator in diesem Zustand befindet, geben nachfolgende Aufrufe von MoveNext ebenfalls false zurück, und Current ist nicht definiert.When the enumerator is at this state, subsequent calls to MoveNext also return false and Current is undefined. Current kann nicht erneut auf das erste Element in der ReadOnlySpan<T> festgelegt werden. 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 die ReadOnlySpan<T> auf dem Stapel zugeordnet ist, sind die zugrunde liegenden Daten, auf die die ReadOnlySpan<T> 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.

Im Gegensatz zu einigen anderen enumeratorstrukturen in .net ReadOnlySpan<T>.Enumerator:Unlike some other enumerator structures in .NET, the ReadOnlySpan<T>.Enumerator:

  • Implementiert nicht die-IEnumerator oder IEnumerator<T>-Schnittstelle.Does not implement the IEnumerator or IEnumerator<T> interface. Der Grund hierfür ist, dass ReadOnlySpan<T>.Enumerator 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

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()

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: