ReadOnlySpan<T>.Enumerator Estrutura
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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>. |