Sobes.tech
Junior — Middle

Z jakich elementów składa się wewnętrzna struktura operatora foreach w C#?

sobes.tech AI

Odpowiedź od AI

Wewnętrzna struktura operatora foreach w C# opiera się na użyciu interfejsu IEnumerable i jego metody GetEnumerator(). Główne elementy:

  • Kolekcja implementująca IEnumerable — obiekt, po którym odbywa się iteracja.
  • Enumerator (enumerator), implementujący IEnumerator — obiekt zarządzający iteracją po kolekcji.
  • Metoda MoveNext() — przesuwa wskaźnik na następny element kolekcji.
  • Właściwość Current — zwraca bieżący element kolekcji.

Przykład, co dzieje się pod maską:

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

while (enumerator.MoveNext())
{
    var item = enumerator.Current;
    // ciało pętli foreach
}

W ten sposób foreach upraszcza pracę z enumeratorami, ukrywając szczegóły wywołania GetEnumerator(), MoveNext() i dostępu do Current.