Como o foreach é implementado em C #? [duplicado

Esta pergunta já tem uma resposta aqui:

Como os loops foreach funcionam em C #? 7 respostas

Como exatamente éforeach implementado em c #?

Imagino uma parte dele parecida com:

var enumerator = TInput.GetEnumerator();
while(enumerator.MoveNext())
{
  // do some stuff here
}

No entanto, não tenho certeza do que realmente está acontecendo. Qual metodologia é usada para retornarenumerator.Current para cada ciclo? Retorna [para cada ciclo] ou é necessária uma função anônima ou algo para executar o corpo deforeach?

questionAnswers(2)

yourAnswerToTheQuestion