Sobes.tech
Junior — Middle

Od kojih elemenata se sastoji interna struktura operatora foreach u C#?

sobes.tech АИ

Одговор од АИ

Unutrašnja struktura operatora foreach u C# zasniva se na korišćenju interfejsa IEnumerable i njegove metode GetEnumerator(). Glavni elementi:

  • Kolekcija koja implementira IEnumerable — objekat preko kojeg se vrši iteracija.
  • Enumerator (brojač), koji implementira IEnumerator — objekat koji upravlja iteracijom kroz kolekciju.
  • Metoda MoveNext() — pomera pokazivač na sledeći element.
  • Svojstvo Current — vraća trenutni element kolekcije.

Primer šta se dešava u pozadini:

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

while (enumerator.MoveNext())
{
    var item = enumerator.Current;
    // telo foreach petlje
}

Na ovaj način, foreach pojednostavljuje rad sa enumeratorima, skrivajući detalje poziva GetEnumerator(), MoveNext() i pristupa Current-u.