Junior — Middle
От какви елементи се състои вътрешната структура на оператора foreach в C#?
sobes.tech AI
Отговор от 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.