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 : 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
- 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
Resetmé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. |