Back to questions
Junior — Middle
73
Из каких элементов состоит внутреннее устройство оператора foreach в C#?
Answer from AI
sobes.tech AI
Внутреннее устройство оператора foreach в C# основано на использовании интерфейса IEnumerable и его метода GetEnumerator(). Основные элементы:
- Коллекция, реализующая
IEnumerable— объект, по которому происходит перебор. - Enumerator (перечислитель), реализующий
IEnumerator— объект, который управляет итерацией по коллекции. - Метод
MoveNext()— перемещает указатель на следующий элемент коллекции. - Свойство
Current— возвращает текущий элемент коллекции.
Пример, что происходит под капотом:
IEnumerable collection = ...;
IEnumerator enumerator = collection.GetEnumerator();
while (enumerator.MoveNext())
{
var item = enumerator.Current;
// тело цикла foreach
}
Таким образом, foreach упрощает работу с перечислителями, скрывая детали вызова GetEnumerator(), MoveNext() и доступа к Current.