Partilhar via


ReadOnlySpan<T>.Enumerator Estrutura

Definição

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

Comentários

O foreach em C# da linguagem C# e o for Each... A próxima construção no Visual Basic oculta a complexidade dos enumeradores. Em vez de manipular diretamente o enumerador, usar foreach ou For Each...Next é recomendado.

Inicialmente, o enumerador é posicionado antes do primeiro elemento no ReadOnlySpan<T>. Nesta posição, Current está 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 serão indefinidas. Você não pode definir Current como o primeiro item no ReadOnlySpan<T> novo; 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 podem não estar. 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 no .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 encaixoado.

  • 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

Current

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

Métodos

MoveNext()

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

Aplica-se a