Как реализован foreach в C #? [Дубликат]

На этот вопрос уже есть ответ:

Как работают циклы foreach в C #? 7 ответов

Как именноforeach реализовано в C #?

Я думаю, что часть этого выглядит так:

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

Однако я не уверен, что на самом деле происходит. Какая методология используется для возвратаenumerator.Current для каждого цикла? Возвращает ли он [для каждого цикла] или требует анонимную функцию или что-то для выполнения телаforeach?

Ответы на вопрос(2)

Ваш ответ на вопрос