Innholdsfortegnelse:
Definisjon - Hva betyr Iterator?
En iterator, i sammenheng med C #, er en kodeblokk som returnerer en ordnet sekvens med verdier for en samling eller matrise. Det er en medlemsfunksjon implementert ved hjelp av iteratorblokken, som inneholder ett eller flere utsagn som inneholder søkeordet "avkastning".
En iterator brukes for å gjøre det mulig for forbrukere av en containerklasse, som inneholder en samling eller matrise, å krysse samlingen ved å bruke "foreach" -satsen på en enklere måte. Den brukes med sterkt typede samlingsklasser for å iterere komplekse datastrukturer som binære trær, som krever rekursiv gjennomgang og opprettholder iterasjonstilstand gjennom rekursjonen. Konseptet med iterator brukes også til å implementere utsatt utførelse i LINQ-spørsmål.
Techopedia forklarer Iterator
Iteratoren er basert på et designmønster som gir en metode for å krysse elementene i en samling av gjenstander i rekkefølge uten å avsløre den underliggende strukturen i samlingen. Det eliminerer den kjedelige oppgaven med å implementere "IEnumerator" -grensesnittet manuelt når du oppretter samlingsklasser som støtter uttalelsen "foreach". Den mellomliggende språkkoden som er nødvendig for å implementere metodene og egenskapene til IEnumerator-grensesnittet genereres av kompilatoren, noe som resulterer i enklere syntaks, redusert kodestørrelse og forbedring i utviklerens produktivitet.
Generelt ligner en iterator en databasemarkør ved at den gir tilgang til dataelementer i en samling, men ikke utfører iterasjon. En iterator kan implementeres i C # som en metode, operatør eller få accessor. For eksempel kan en iterator brukes til å krysse en samling av strenger for å vise innholdet i hver streng i samlingen.
En iterator er representert av IEnumerator-grensesnittet og implementeres av kompilatoren med følgende metoder:
- MoveNext: En metode som går videre til neste element i samlingen og indikerer slutten av samlingen
- Gjeldende: En egenskap som henter verdien av elementet som pekes på for øyeblikket
- Kast: Rens opp iterasjonen
