Iterador

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 contendo a palavra-chave "yield".

Um iterador é usado para permitir que os consumidores de uma classe de contêiner, contendo uma coleção ou matriz, percorram a coleção usando a instrução "foreach" de uma maneira mais simples. É usado com classes de coleção fortemente tipadas para iterar estruturas de dados complexas como árvores binárias, que requerem travessia 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.

Definirtec explica 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. Ele 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 Linguagem Intermediária 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 de banco de dados no sentido de que 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 de obtenção. 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
  • Atual: uma propriedade que busca o valor do elemento que está sendo apontado
  • Dispose: Limpa a iteração

GetEnumerator () é o método iterador padrão da interface IEnumerable. Este método pode ser implementado na coleção que contém a classe contêiner. O método GetEnumerator () é chamado na execução da instrução "foreach", que usa o enumerador retornado para iterar por meio de valores. A instrução "yield return" é usada dentro do bloco iterador para buscar um elemento da coleção. Também ajuda a posicionar o local atual de forma que a execução comece a partir deste local na próxima vez que ocorrer. A instrução "quebra de rendimento" termina a iteração. Esta definição foi escrita no contexto de C #