Índice:
Definição - O que significa Iterator?
Um iterador, no contexto de C #, é um bloco de código que retorna uma sequência ordenada de valores de uma coleção ou matriz. É uma função de membro implementada usando o bloco iterador, que contém uma ou mais instruções que contêm a palavra-chave "yield".
Um iterador é usado para permitir que os consumidores de uma classe de contêiner, contendo uma coleção ou matriz, atravessem a coleção usando a instrução "foreach" de uma maneira mais simples. Ele é usado com classes de coleção fortemente tipadas para iterar estruturas de dados complexas, como árvores binárias, que exigem passagem recursiva e mantêm o estado de iteração por meio da recursão. O conceito de iterador também é usado na implementação de execução adiada em consultas LINQ.
Techopedia explica o Iterator
O iterador é baseado em um padrão de design que fornece um método para percorrer os elementos de uma coleção de itens sequencialmente sem expor a estrutura subjacente da coleção. Elimina a tarefa tediosa de implementar a interface "IEnumerator" manualmente ao criar classes de coleção que suportam a instrução "foreach". O código de idioma intermediário necessário para implementar os métodos e propriedades da interface IEnumerator é gerado pelo compilador, o que resulta em sintaxe mais simples, tamanho de código reduzido e melhoria na produtividade do desenvolvedor.
Em geral, um iterador é semelhante a um cursor do banco de dados, pois fornece acesso aos elementos de dados em uma coleção, mas não executa a iteração. Um iterador pode ser implementado em C # como um método, operador ou acessador. Por exemplo, um iterador pode ser usado para percorrer uma coleção de strings para exibir o conteúdo de cada string na coleção.
Um iterador é representado pela interface IEnumerator e é implementado pelo compilador com os seguintes métodos:
- MoveNext: um método que avança para o próximo elemento da coleção e indica o final dessa coleção
- Current: Uma propriedade que busca o valor do elemento atualmente sendo apontado
- Dispose: limpa a iteração
