Sobes.tech
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.