Inhoudsopgave:
Definitie - Wat betekent Iterator?
Een iterator, in de context van C #, is een codeblok dat een geordende reeks waarden van een verzameling of array retourneert. Het is een lidfunctie die is geïmplementeerd met behulp van het iteratorblok, dat een of meer instructies bevat die het trefwoord "yield" bevatten.
Een iterator wordt gebruikt om consumenten van een containerklasse, die een verzameling of array bevat, in staat te stellen om de verzameling te doorkruisen met behulp van de "foreach" -instructie op een eenvoudiger manier. Het wordt gebruikt met sterk getypeerde verzamelklassen om complexe datastructuren te herhalen, zoals binaire bomen, die recursieve doorgang vereisen en de iteratietoestand door de recursie handhaven. Het concept iterator wordt ook gebruikt bij de implementatie van uitgestelde uitvoering in LINQ-query's.
Techopedia legt Iterator uit
De iterator is gebaseerd op een ontwerppatroon dat een methode biedt om de elementen van een verzameling items opeenvolgend te doorlopen zonder de onderliggende structuur van de verzameling bloot te leggen. Het elimineert de vervelende taak van het handmatig implementeren van de "IEnumerator" -interface bij het maken van collectieklassen die de instructie "foreach" ondersteunen. De tussenliggende taalcode die nodig is voor het implementeren van de methoden en eigenschappen van de IEnumerator-interface wordt gegenereerd door de compiler, wat resulteert in een eenvoudigere syntaxis, een kleinere codegrootte en verbetering van de productiviteit van ontwikkelaars.
Over het algemeen is een iterator vergelijkbaar met een databasecursor omdat deze toegang geeft tot gegevenselementen in een verzameling, maar geen iteratie uitvoert. Een iterator kan in C # worden geïmplementeerd als een methode, operator of accessor. Een iterator kan bijvoorbeeld worden gebruikt om een verzameling strings te doorlopen om de inhoud van elke string in de verzameling weer te geven.
Een iterator wordt vertegenwoordigd door de IEnumerator-interface en wordt door de compiler geïmplementeerd met de volgende methoden:
- MoveNext: een methode die doorgaat naar het volgende element van de verzameling en het einde van die verzameling aangeeft
- Huidig: een eigenschap die de waarde ophaalt van het element waarnaar momenteel wordt verwezen
- Weggooien: ruimt de iteratie op