ReadOnlySpan<T>.Enumerator Estrutura

Definição

Fornece um enumerador para os elementos de um 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
Herança
ReadOnlySpan<T>.Enumerator
Implementações

Comentários

O foreach do C# e o For Each... Em seguida construção em Visual Basic oculta a complexidade dos enumeradores. Em vez de manipular diretamente o enumerador, use foreach ou For Each...Next seja recomendado.

Inicialmente, o enumerador é posicionado antes do primeiro elemento no ReadOnlySpan<T>. Nessa posição, Current é indefinido. Você deve chamar MoveNext para avançar o enumerador para o primeiro item antes ReadOnlySpan<T> de ler o valor de Current.

Current retorna o mesmo valor até MoveNext ser chamado. MoveNext define Current o próximo item no ReadOnlySpan<T>.

Se MoveNext passar o final do ReadOnlySpan<T>, MoveNext retornará false. Quando o enumerador estiver nesse estado, as chamadas subsequentes também serão MoveNext retornadas false e Current indefinidas. Você não pode definir Current como o primeiro item novamente ReadOnlySpan<T> ; você deve criar uma nova instância de enumerador.

Embora a ReadOnlySpan<T> origem seja alocada na pilha, os dados subjacentes aos quais os ReadOnlySpan<T> pontos serão, podem não ser. Portanto, enumerar por meio de um ReadOnlySpan<T> não é intrinsecamente um procedimento thread-safe. Para garantir a segurança do thread durante a enumeração, você deve implementar sua própria sincronização.

Ao contrário de algumas outras estruturas de enumerador em .NET, o ReadOnlySpan<T>.Enumerator:

  • Não implementa a interface ou IEnumerator<T> a IEnumerator interface. Isso ocorre porque ReadOnlySpan<T>.Enumerator é um struct ref e não pode ser boxizado.

  • Não inclui um Reset método, que pode definir o enumerador como sua posição inicial antes do primeiro elemento no intervalo. (O IEnumerator.Reset() método deve ser implementado como parte da interface, mas a maioria dos implementadores gera uma exceção ou não fornece nenhuma implementação.)

Propriedades

Nome Description
Current

Obtém uma referência ao item na posição atual do enumerador.

Métodos

Nome Description
MoveNext()

Avança o enumerador para o próximo item do ReadOnlySpan<T>.

Implantações explícitas de interface

Nome Description
IDisposable.Dispose()

Executa tarefas definidas pelo aplicativo associadas à liberação, liberação ou redefinição de recursos não gerenciados.

IEnumerator.Current

Obtém o elemento na coleção na posição atual do enumerador.

IEnumerator.Reset()

Define o enumerador como sua posição inicial, que é antes do primeiro elemento na coleção.

IEnumerator<T>.Current

Obtém o elemento na coleção na posição atual do enumerador.

Aplica-se a