Sobes.tech
Junior — Middle

De que elementos é composta a estrutura interna do operador foreach em C#?

sobes.tech IA

Resposta da IA

A estrutura interna do operador foreach em C# baseia-se na utilização da interface IEnumerable e do seu método GetEnumerator(). Os elementos principais:

  • Coleção que implementa IEnumerable — objeto sobre o qual ocorre a iteração.
  • Enumerador (enumerator), que implementa IEnumerator — objeto que controla a iteração sobre a coleção.
  • Método MoveNext() — move o ponteiro para o próximo elemento da coleção.
  • Propriedade Current — devolve o elemento atual da coleção.

Exemplo do que acontece por baixo dos panos:

IEnumerable collection = ...;
IEnumerator enumerator = collection.GetEnumerator();

while (enumerator.MoveNext())
{
    var item = enumerator.Current;
    // corpo do ciclo foreach
}

Assim, foreach simplifica o trabalho com os enumeradores, escondendo os detalhes da chamada a GetEnumerator(), MoveNext() e acesso a Current.