Sobes.tech
Junior — Middle

Din ce elemente este formată structura internă a operatorului foreach în C#?

sobes.tech AI

Răspuns de la AI

Funcționarea internă a operatorului foreach în C# se bazează pe utilizarea interfeței IEnumerable și a metodei sale GetEnumerator(). Elementele principale:

  • Colecție care implementează IEnumerable — obiectul peste care se face iterația.
  • Enumerator (enumerator), care implementează IEnumerator — obiectul care controlează iterația asupra colecției.
  • Metoda MoveNext() — mută indicatorul la următorul element.
  • Proprietatea Current — returnează elementul curent.

Exemplu despre ce se întâmplă în spate:

IEnumerable collection = ...;
IEnumerator enumerator = collection.GetEnumerator();

while (enumerator.MoveNext())
{
    var item = enumerator.Current;
    // corpul buclei foreach
}

Astfel, foreach simplifică lucrul cu enumeratorii, ascunzând detaliile apelului la GetEnumerator(), MoveNext() și accesul la Current.