ReadOnlySpan<T>.Enumerator Estructura

Definición

Proporciona un enumerador para los elementos de ReadOnlySpan<T>.

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

Parámetros de tipo

T
Herencia
ReadOnlySpan<T>.Enumerator

Comentarios

El elemento foreach de C# del lenguaje C# y for Each... La siguiente construcción de Visual Basic oculta la complejidad de los enumeradores. En lugar de manipular directamente el enumerador, se recomienda usar foreach o For Each...Next .

Inicialmente, el enumerador se coloca antes del primer elemento de ReadOnlySpan<T>. En esta posición, el valor de propiedad Current está sin definir. Debe llamar MoveNext a para avanzar el enumerador al primer elemento de ReadOnlySpan<T> antes de leer el valor de Current.

Current devuelve el mismo valor hasta MoveNext que se llama a . MoveNextestablece Current en el siguiente elemento de .ReadOnlySpan<T>

Si MoveNext pasa el final de ReadOnlySpan<T>, MoveNext devuelve false. Cuando el enumerador está en este estado, las llamadas posteriores a MoveNext también devuelven false y Current no están definidas. No se puede establecer Current en el primer elemento de ReadOnlySpan<T> nuevo; en su lugar, debe crear una nueva instancia del enumerador.

Aunque se asigna en ReadOnlySpan<T> la pila, es posible que no estén los datos subyacentes a los ReadOnlySpan<T> que apunta. Por lo tanto, la enumeración a través de no ReadOnlySpan<T> es intrínsecamente un procedimiento seguro para subprocesos. Para garantizar la seguridad de los subprocesos durante la enumeración, debe implementar su propia sincronización.

A diferencia de otras estructuras de enumerador en .NET, :ReadOnlySpan<T>.Enumerator

  • No implementa la IEnumerator interfaz o IEnumerator<T> . Esto se debe a que ReadOnlySpan<T>.Enumerator es una estructura de referencia y no se puede boxear.

  • No incluye un Reset método , que puede establecer el enumerador en su posición inicial antes del primer elemento del intervalo. (El IEnumerator.Reset() método debe implementarse como parte de la interfaz, pero la mayoría de los implementadores inician una excepción o no proporcionan ninguna implementación).

Propiedades

Current

Obtiene una referencia al elemento en la posición actual del enumerador.

Métodos

MoveNext()

Desplaza el enumerador al siguiente elemento de ReadOnlySpan<T>.

Se aplica a