Uvod v Iteratorje v C #

Iteratorji so metoda, ki se uporablja za pridobivanje elementov in opravi iteracijo, eno za drugo v nizih, seznamu itd. Izjava o donosu se uporablja z metodo iteratorja za vrnitev elementa zbirke in prekinitev donosa se uporablja za zaustavitev iteracije . Vedno shrani trenutno lokacijo in vrne naslednji element, ko se izvede naslednja ponovitev. Neštevilne in IEnumerator predmetne vrednosti so povratna vrsta donosa. V tej temi bomo spoznali Iteratorje v C #.

C # Iterators Metode

Spodaj so primeri za prikaz iteracije z različnimi metodami, kot so zanka, zanka foreach in števci.

1. Za zanko

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

Zanka zanke je sestavljena iz treh stavkov. Sprva se izvede inicializacija in nato pogoj, ki je logični izraz. Po tem se izvaja iterator za spremembo vrednosti inicializirane spremenljivke. Postopek za zanko se nadaljuje, dokler ni pogoj napačen, in ko je napačen, zanka preneha.

Izhod zgornje kode je

2. ForEach zanke

Primer

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

Za ponavljanje elementov se uporablja predelna zanka znotraj ključne besede. Ključna beseda se uporablja za izbiro predmeta v vsaki ponovitvi. Prvi element je iteraniran in shranjen v elementu za tem drugim elementom in tako naprej. Število iteracij predloga je odvisno od števila elementov v zbirki. V tem primeru je zbirka sestavljena iz treh vrednosti, tako da bo število predpostavke potekalo trikrat in prikazalo vrednosti.

Izhod zgornje kode je

3. Poštevalniki

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

V tem primeru je vrsta elementa, ki vsebuje pet elementov, in foreach se uporablja za iteracijo vsakega elementa. Izkaz donosa se uporablja za vrnitev elementa po vsaki ponovitvi. Številni vmesnik shranjuje vsak element, medtem ko se foreach uporablja za prikaz vrnitve elementov iz iteracije. Ta iterator se uporablja v metodi.

Izhod zgornje kode je

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

V tem primeru se uporablja zbirka seznamov, za dodajanje elementov na seznam pa se uporablja metoda list.add. Tu je seznam sestavljen iz sedmih elementov. Za iteracijo vsakega elementa se uporablja foreach. Izkaz donosa se uporablja za vrnitev elementa po vsaki ponovitvi. Številni vmesnik shranjuje vsak element, medtem ko se foreach uporablja za prikaz vrnitve elementov iz iteracije.

Izhod zgornje kode je

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

V tem primeru se ustvari serija Fibonaccije in iterator se uporablja v operatorju. Izvajanje tega istega kot smo uporabili iteratorje v metodi, le da se v tem operaterjih uporablja za vračanje stvari.

Izhod zgornje kode je

Primer št. 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();
)
)
)
)

V zgornjem primeru se uporablja zbirka seznamov. Za dodajanje elementov na seznam se uporablja metoda List.add. Seznam vsebuje sedem elementov. Uporabljata se MoveNext in Current. MoveNext v bistvu sledi, če je naslednji element prisoten ali ne, in vrne logično, kar je lahko res, če je element na voljo in je napačen, če ni elementa, medtem ko se za pridobivanje trenutnega elementa uporablja tok.

Izhod zgornje kode je

Prednosti in slabosti iteratorja

Spodaj so omenjene nekatere prednosti:

  1. Iteratorji se lahko uporabljajo kot metoda in pridobijo dostop.
  2. Uporablja se lahko kot upravljavec ali kot lastnina.
  3. Iteratorji so enostavni za branje in enostavno izvedbo.
  4. Iteratorji se uporabljajo s splošnimi in ne generičnimi zbirkami.

Spodaj so omenjene nekatere pomanjkljivosti:

  1. Iteratorji niso uporabni pri povratnem spremljanju seznama.
  2. Ker iterator shrani položaj, tako da ne morete posodobiti ponovljene strukture.
  3. Iteratorji se ne uporabljajo v statičnem konstruktorju, statičnem dokončevalniku in konstruktorju primerkov.

Zaključek - Iteratorji v C #

Torej za prečkanje zaporedja vrednosti lahko iteratorje uporabimo z izjavo foreach. Dobitek lahko z iteratorjem uporabite večkrat za vrnitev elementov. Je enostaven za izvedbo in precej priročen.

Priporočeni članki

To je vodnik za Iteratorje v C #. Tukaj razpravljamo o primerih, ki prikazujejo iteracijo z različnimi metodami, kot so zanka, zanka foreach in števci. Če želite izvedeti več, si oglejte tudi naslednji članek.

  1. Destruktor v C #
  2. Fibonaccijeva serija v C #
  3. Prevladovanje metode v C #
  4. C # Za zanko
  5. Prevladovanje v Javi
  6. Delo in top 3 metode Enum v C #