Introduktion til Iteratorer i C #

Iteratorer er den metode, der bruges til at hente elementerne og udfører iteration en ad gangen i arrays, liste osv. Udbytteudkastsangivelsen bruges med iteratormetoden til at returnere elementet i samlingen, og udbyttebrud bruges til at stoppe iterationen . Det gemmer altid den aktuelle placering og returnerer det næste element, når den næste iteration finder sted. IEnumerable og IEnumerator-objektværdier er udbyttetypen. I dette emne skal vi lære om Iteratorer i C #.

C # Iterators metoder

Nedenfor er eksemplerne til at vise iteration med forskellige metoder som loop, foreach loop og tællere.

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();
)
)
)

En for loop består af tre udsagn. Først udføres initialisering og derefter betingelse, der er et boolskt udtryk. Derefter udføres iteratoren for at ændre den initialiserede variables værdi. Dette for loop-processen fortsætter, indtil betingelsen er falsk, og når den er falsk, for loop slutter.

Output fra ovenstående kode er

2. ForEach Loop

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-løkke inden for nøgleordet bruges til at iterere elementer. Nøgleordet bruges til at vælge emnet på hver iteration. Det første emne iteres og gemmes i elementet efter det andet emne og så videre. Antallet af iteration af foreach afhænger af antallet af elementer i samlingen. I dette eksempel består samlingen af ​​tre værdier, så antallet af foreach finder sted tre gange og viser værdierne.

Output fra ovenstående kode er

3. Tællere

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 eksempel er der en matrix af elementet, der indeholder fem elementer, og foreach bruges til iteration af hvert element. Udbytteregningen bruges til at returnere element efter hver iteration. IEnumerable interface lagrer hvert element, hvorimod foreach bruges til at vise elementerne, der vender tilbage fra iterationen. Denne iterator bruges i en metode.

Output fra ovenstående kode 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 eksempel bruges listesamling, og metoden list.add bruges til at tilføje elementer på listen. Her består listen af ​​syv elementer. En foreach bruges til iteration af hvert element. Udbytteregningen bruges til at returnere element efter hver iteration. IEnumerable interface lagrer hvert element, hvorimod foreach bruges til at vise elementerne, der vender tilbage fra iterationen.

Output fra ovenstående kode 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 eksempel genereres Fibonacci-serien, og iteratoren bruges i en operatør. Implementeringen af ​​denne samme som vi brugte iteratorer i en metode bortset fra at i denne operatør bruges til at returnere ting.

Output fra ovenstående kode 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 ovenstående eksempel bruges listesamling. List.add-metoden bruges til at tilføje elementer på listen. Her indeholder listen syv elementer. MoveNext og Current bruges. MoveNext sporer dybest set, hvis det næste element er til stede eller ej, og returnerer boolsk, hvilket kan være sandt, hvis elementet er tilgængeligt og usant, hvis der ikke er noget element, mens strømmen bruges til at hente det aktuelle element.

Output fra ovenstående kode er

Fordele og ulemper ved Iterator

Nogle af fordelene er nævnt nedenfor:

  1. Iteratorer kan bruges som metode og få accessor.
  2. Det kan bruges som operatører eller som en ejendom.
  3. Iteratorer er lette at læse og lette at implementere.
  4. Iteratorer bruges sammen med de generiske og ikke-generiske samlinger.

Nogle af ulemperne er nævnt nedenfor:

  1. Iteratorer er ikke nyttige i backtracking af en liste.
  2. Da iterator gemmer positionen, så du ikke kan opdatere den itererede struktur.
  3. Iteratorer bruges ikke i den statiske konstruktør, den statiske finalisator og forekomstkonstruktøren.

Konklusion - Iteratorer i C #

Så til at krydse rækkefølgen af ​​værdier, kan iteratorer bruges med foreach-sætningen. Yield kan bruges flere gange med iterator til at returnere elementerne. Det er let at implementere og ganske praktisk.

Anbefalede artikler

Dette er en guide til Iteratorer i C #. Her diskuterer vi eksemplerne for at vise iteration med forskellige metoder som loop, foreach loop og tællere. Du kan også se på den følgende artikel for at lære mere-

  1. Destructor i C #
  2. Fibonacci-serie i C #
  3. Metodeoverskridelse i C #
  4. C # For sløjfe
  5. Overstyring i Java
  6. Arbejde og top 3 enummetoder i C #

Kategori: