Из чего состоит foreach?

Проходил собеседование на .NET разработчика. Дали задачу, в которой нужно было сказать, что выведет в последней строке (не суть). Суть в том, что в коде присутствовал цикл foreach, который перебирал элементы коллекций. Когда я начал решать задачу, последовал вопрос "А Вы знаете из чего состоит foreach?". Ответить я не смог, и после собеседования начал искать ответ на вопрос, но не нашел.

Вопрос: Из каких конструкций состоит foreach?


Ответы (1 шт):

Автор решения: Lets Drum

Вот это:

foreach (V v in x) embedded_statement

тоже самое, что и это:

{
    E e = ((C)(x)).GetEnumerator();
    try {
        while (e.MoveNext()) {
            V v = (V)(T)e.Current;
            embedded_statement
        }
    }
    finally {
        ... // Dispose e
    }
}

Источник

→ Ссылка