Introduksjon til Iterators i C #

Iteratorer er metoden som brukes for å hente elementene og utføre iterasjon en etter en i matriser, liste osv. Avkastningsoppgaven brukes med iteratormetoden for å returnere elementet i samlingen og avkastningsbrudd brukes til å stoppe iterasjonen . Den lagrer alltid den gjeldende plasseringen og returnerer neste element når neste iterasjon finner sted. IEnumerable og IEnumerator-objektverdiene er avkastningstypen. I dette emnet skal vi lære om Iteratorer i C #.

C # Iterators metoder

Nedenfor er eksemplene for å vise iterasjon med forskjellige metoder som loop, foreach loop og tellere.

1. For Loop

Eksempel 1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
(
class Iterator
(
static void Main(string() args)
(
for (int i = 1; i <= 7; i++)
(
Console.WriteLine( i);
)
Console.WriteLine("Press Enter Key to Exit..");
Console.ReadLine();
)
)
)

A for loop består av tre utsagn. Først utføres initialisering og deretter betingelse som er et boolskt uttrykk. Etter det blir iteratoren utført for å endre verdien på initialisert variabel. Denne for loop-prosessen fortsetter til tilstanden er falsk og når den er falsk, for loop slutter.

Utgangen til koden ovenfor er

2. For hver sløyfe

Eksempel

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
(
class Iterator
(
static void Main(string()args)
(
string() values = new string(3) ( "John", "Bob", "Eva" );
foreach (string name in values)
(
Console.WriteLine(name);
)
Console.WriteLine("Press Enter Key to Exit..");
Console.ReadLine();
)
)
)

En foreach-loop innenfor nøkkelordet brukes til å itereere elementer. Nøkkelordet brukes til å velge elementet på hver iterasjon. Det første elementet iteres og lagres i elementet etter det andre elementet og så videre. Antallet iterasjoner av foreach avhenger av antall elementer i samlingen. I dette eksemplet består samlingen av tre verdier, slik at antall forespørsler vil finne sted tre ganger og vise verdiene.

Utgangen til koden ovenfor er

3. Oppregnere

Eksempel 1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
(
class Iterator
(
public static IEnumerable GetArray()
(
int() array = new int() ( 12, 45, 56, 21, 4 ); // initializing array elements
foreach (var element in array) // iterating array element
(
yield return element.ToString(); // returning elements
)
)
public static void Main(string()args) // main method
(
IEnumerable elements = GetArray(); // storing array element
foreach(var element in elements)
(
Console.WriteLine(element);
Console.ReadKey();
)
)
)
)

I dette eksemplet er det en gruppe av elementet som inneholder fem elementer og foreach brukes til iterasjon av hvert element. Avkastningsoppgaven brukes til å returnere element etter hver iterasjon. IEnumerable grensesnitt lagrer hvert element, mens foreach brukes til å vise elementene som kommer tilbake fra iterasjonen. Denne iteratoren brukes i en metode.

Utgangen til koden ovenfor er

Eksempel 2

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
(
class Iterator
(
public static IEnumerable GetList()
(
List list = new List();
list.Add("Sunday"); // adding elements to list
list.Add("Monday");
list.Add("Tuesday");
list.Add("Wednesday");
list.Add("Thursday");
list.Add("Friday");
list.Add("Saturday");
foreach(var element in list) //iteration of list elements
(
yield return element; //returning elements after iteration
)
)
public static void Main(string()args) // main method
(
IEnumerable elements = GetList(); // storing elements
foreach(var element in elements)
(
Console.WriteLine(element);
Console.ReadKey();
)
)
)
)

I dette eksemplet brukes listesamling og list.add-metoden brukes til å legge til elementer i listen. Her består listen av syv elementer. En foreach brukes til iterasjon av hvert element. Avkastningsoppgaven brukes til å returnere element etter hver iterasjon. IEnumerable grensesnitt lagrer hvert element, mens foreach brukes til å vise elementene som kommer tilbake fra iterasjonen.

Utgangen til koden ovenfor er

Eksempel 3

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
(
class Iterator
(
public static void Main(string() args)
(
foreach(var item in fib(6)) // iteration of elements
(
Console.WriteLine(item);
)
)
public static IEnumerable fib(int number)
(
int x = 0, y = 1;
// yield return x;
//yield return y;
for (int i=0; i<=number; i++)
(
int temp = x;
x = y;
y = temp + y;
yield return y; // returning the element
Console.ReadKey();
)
)
)
)

I dette eksemplet genereres Fibonacci-serien, og iteratoren brukes i en operatør. Implementeringen av dette samme som vi brukte iteratorer i en metode bortsett fra at i denne operatørene brukes til å returnere ting.

Utgangen til koden ovenfor er

Eksempel 4

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
(
class Iterator
(
static void Main()
(
List list = new List();
list.Add(10); // adding elements to list
list.Add(20);
list.Add(30);
list.Add(40);
list.Add(50);
list.Add(60);
list.Add(70);
List.Enumerator a = list.GetEnumerator();
Write(a);
)
static void Write(IEnumerator a)
(
while (a.MoveNext())
(
int value = a.Current;
Console.WriteLine(value);
Console.ReadKey();
)
)
)
)

I eksemplet over blir listesamling brukt. List.add-metoden brukes til å legge til elementer i listen. Listen inneholder syv elementer. MoveNext og Current brukes. MoveNext sporer i utgangspunktet om neste element er til stede eller ikke, og returnerer boolsk som kan være sant hvis elementet er tilgjengelig og usant hvis det ikke er noe element mens strømmen brukes til å hente det aktuelle elementet.

Utgangen til koden ovenfor er

Fordeler og ulemper ved Iterator

Noen av fordelene er nevnt nedenfor:

  1. Iteratorer kan brukes som metode og få tilgang.
  2. Det kan brukes som operatører eller som eiendom.
  3. Iteratorer er enkle å lese og enkle å implementere.
  4. Iteratorer brukes sammen med generiske og ikke-generiske samlinger.

Noen av ulempene er nevnt nedenfor:

  1. Iteratorer er ikke nyttige i backtracking av en liste.
  2. Ettersom iterator lagrer posisjonen, så du ikke kan oppdatere den itererte strukturen.
  3. Iteratorer brukes ikke i statisk konstruktør, statisk sluttbehandler og instanskonstruktør.

Konklusjon - Iteratorer i C #

For å krysse av sekvensen av verdier, kan iteratorer brukes med foreach-uttalelsen. Yield kan brukes flere ganger med iterator for å returnere elementene. Den er enkel å implementere og ganske hendig.

Anbefalte artikler

Dette er en guide til Iteratorer i C #. Her diskuterer vi eksemplene for å vise iterasjon med forskjellige metoder som loop, foreach loop og enumerators. Du kan også se på følgende artikkel for å lære mer-

  1. Destructor i C #
  2. Fibonacci-serien i C #
  3. Metodeoverskridelse i C #
  4. C # For Loop
  5. Overstyrer i Java
  6. Working and Top 3 Enum Methods in C #