Sobes.tech
Junior — Middle

A C# nyelvben a foreach operátor belső felépítése milyen elemekből áll?

sobes.tech MI

Válasz az MI-től

A foreach operátor belső működése C#-ban az IEnumerable interfész és annak GetEnumerator() metódusának használatán alapul. A fő elemek:

  • Az IEnumerable-t megvalósító gyűjtemény — az objektum, amin keresztül iterálunk.
  • Az IEnumerator-t megvalósító enumerátor — az objektum, amely irányítja az iterációt a gyűjteményen belül.
  • A MoveNext() metódus — a mutatót a következő elemre helyezi.
  • A Current tulajdonság — visszaadja az aktuális elemet.

Példa arra, hogy mi történik a háttérben:

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

while (enumerator.MoveNext())
{
    var item = enumerator.Current;
    // foreach ciklus törzse
}

Így a foreach leegyszerűsíti a gyűjtőkkel való munkát, elrejtve a GetEnumerator(), MoveNext() hívásának és a Current elérésének részleteit.