ReadOnlySpan<T>.Enumerator Estructura

Definición

Proporciona un enumerador para los elementos de .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

Parámetros de tipo

T
Herencia
ReadOnlySpan<T>.Enumerator
Implementaciones

Comentarios

El foreach del lenguaje C# y el For Each... A continuación construcción en 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, Current no está definido. 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 elemento siguiente 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 también devuelven MoveNextfalse y Current no están definidas. No se puede establecer Current en el primer elemento de nuevo ReadOnlySpan<T> ; en su lugar, debe crear una nueva instancia del enumerador.

ReadOnlySpan<T> Aunque se asigna en 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, el ReadOnlySpan<T>.Enumerator:

  • No implementa la IEnumerator interfaz o IEnumerator<T> . Esto se debe a ReadOnlySpan<T>.Enumerator que es una estructura ref 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

Nombre Description
Current

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

Métodos

Nombre Description
MoveNext()

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

Implementaciones de interfaz explícitas

Nombre Description
IDisposable.Dispose()

Realiza tareas definidas por la aplicación asociadas a la liberación, liberación o restablecimiento de recursos no administrados.

IEnumerator.Current

Obtiene el elemento de la colección en la posición actual del enumerador.

IEnumerator.Reset()

Establece el enumerador en su posición inicial, que es antes del primer elemento de la colección.

IEnumerator<T>.Current

Obtiene el elemento de la colección en la posición actual del enumerador.

Se aplica a