Sobes.tech
Junior — Middle

Millest koosneb foreach operaatori sisemine struktuur C#-s?

sobes.tech AI

Vastus AI-lt

Sisemine foreach operaatori struktuur C#-s põhineb IEnumerable liidese ja selle GetEnumerator() meetodi kasutamisel. Peamised elemendid:

  • Kogum, mis rakendab IEnumerable — objekt, mille kaudu iteratsioon toimub.
  • Enumerator (loendur), mis rakendab IEnumerator — objekt, mis juhib iteratsiooni kogumi üle.
  • Meetod MoveNext() — liigub järgmise elemendi juurde.
  • Omadus Current — tagastab praeguse elemendi.

Näide, mis toimub varjupool:

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

while (enumerator.MoveNext())
{
    var item = enumerator.Current;
    // foreach tsükli keha
}

Seega lihtsustab foreach töö tegemist enumeratoritega, varjates GetEnumerator(), MoveNext() ja Current-i juurdepääsu üksikasju.