Hoje vim para falar de uma das features mais úteis do C# 2.0, mesmo que muitas pessoas não saibam do que se trata. Vamos falar de iterators ! O que é um iterator? Para quem ainda não sabe o que é o padrão iterator , podem ler a sua descrição aqui . Um iterator é uma classe/objecto que sabe como percorrer uma estrutura. Portanto, se tivermos uma lista de objectos, um iterator teria o conhecimento de como percorrer essa lista e aceder cada elemento da lista. O iterator é um design pattern bastante conhecido e está por trás de muitas coisas fantásticas que temos hoje no .NET. (assim de repente lembro-me de LINQ ). A Microsoft definiu duas interfaces para este design pattern chamadas IEnumerable e IEnumerator . A primeira é implementada no objecto que vamos percorrer, a segunda é no objecto que irá percorrer o primeiro. Porque é que é uma feature? Diga-se de passagem, os iterators são um conceito bem conhecido mesmo antes do .NET existir...
Let's have some fun with programming...