Johdatus C #: n iteraattoreihin

Iteraattorit ovat menetelmä, jota käytetään hakemaan elementtejä ja suorittamaan iterointi yksitellen matriiseissa, luetteloissa jne. Tuottopalautuslausetta käytetään iteraattorimenetelmän kanssa keräyksen elementin palauttamiseen, ja tuottokatkoa käytetään iteraation lopettamiseen. . Se tallentaa aina nykyisen sijainnin ja palauttaa seuraavan elementin, kun seuraava iterointi tapahtuu. IEnumerable ja IEnumerator -objektien arvot ovat tuoton palautustyyppiä. Tässä aiheessa aiomme oppia C # -sovelluksen iteraattoreista.

C # Iteraattorimenetelmät

Alla on esimerkkejä iteroinnin osoittamiseksi erilaisilla menetelmillä, kuten silmukka, foreach-silmukka ja luetelijat.

1. Loopille

Esimerkki 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-silmukka koostuu kolmesta lauseesta. Aluksi suoritetaan alustus ja sitten ehto, joka on Boolen lauseke. Sen jälkeen iteraattori suoritetaan alustetun muuttujan arvon muuttamiseksi. Tämä silmukkaprosessille jatkuu, kunnes ehto on väärä ja kun se on väärä, silmukan päättyy.

Yllä olevan koodin lähtö on

2. ForEach Loop

esimerkki

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

Foreach-silmukkaa avainsanan sisällä käytetään iteroimaan kohteita. Avainsanaa käytetään kohteen valitsemiseen jokaisessa iteraatiossa. Ensimmäinen kappale iteroidaan ja tallennetaan elementtiin toisen kappaleen jälkeen ja niin edelleen. Esipuheen iteraation määrä riippuu kokoelman elementtien lukumäärästä. Tässä esimerkissä kokoelma koostuu kolmesta arvosta, joten ennakointi tapahtuu kolme kertaa ja näyttää arvot.

Yllä olevan koodin lähtö on

3. Laskurit

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

Tässä esimerkissä on joukko elementtiä, joka sisältää viisi elementtiä ja etumerkkiä käytetään kunkin elementin iterointiin. Tuottolaskelmaa käytetään palauttamaan elementti jokaisen iteraation jälkeen. ILukematon käyttöliittymä tallentaa jokaisen elementin, kun taas foreachia käytetään näyttämään elementtien palautus iteraatiosta. Tätä iteraattoria käytetään menetelmässä.

Yllä olevan koodin lähtö on

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

Tässä esimerkissä käytetään luettelokokoelmaa ja list.add-menetelmää elementtien lisäämiseen luetteloon. Tässä luettelo koostuu seitsemästä osasta. Kummankin elementin toistoon käytetään esipuhetta. Tuottolaskelmaa käytetään palauttamaan elementti jokaisen iteraation jälkeen. ILukematon käyttöliittymä tallentaa jokaisen elementin, kun taas foreachia käytetään näyttämään elementtien palautus iteraatiosta.

Yllä olevan koodin lähtö on

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

Tässä esimerkissä luodaan Fibonacci-sarja ja iteraattoria käytetään operaattorissa. Tämän toteutus kuin me käytimme iteraattoreita menetelmässä paitsi, että tässä operaattorissa käytetään palauttamaan asioita.

Yllä olevan koodin lähtö on

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

Yllä olevassa esimerkissä käytetään luettelokokoelmaa. Lista.add-menetelmää käytetään elementtien lisäämiseen luetteloon. Tässä luettelossa on seitsemän elementtiä. Siirrä Seuraava ja Nykyinen käytetään. MoveNext seuraa periaatteessa sitä, onko seuraava elementti läsnä tai ei, ja palauttaa boolean-arvon, joka voi olla totta, jos elementti on käytettävissä, ja väärä, jos elementtiä ei ole, kun taas virtaa käytetään nykyisen elementin hakemiseen.

Yllä olevan koodin lähtö on

Iteratorin edut ja haitat

Jotkut eduista mainitaan alla:

  1. Iteraattoreita voidaan käyttää menetelmänä ja saada lisälaite.
  2. Sitä voidaan käyttää operaattoreina tai omaisuutena.
  3. Iteraattorit ovat helppo lukea ja helppo toteuttaa.
  4. Iteraattoreita käytetään geneeristen ja ei-geneeristen kokoelmien kanssa.

Jotkut haitat mainitaan alla:

  1. Iteraattorit eivät ole hyödyllisiä luettelon jälkiseurannassa.
  2. Koska iteraattori tallentaa sijainnin, et voi päivittää iteroitua rakennetta.
  3. Iteraattoreita ei käytetä staattisessa konstruktorissa, staattisessa viimeistelylaitteessa ja esiintymän rakentajassa.

Johtopäätös - I #

Joten arvojen sekvenssin kulkemiseksi iteraattoreita voidaan käyttää foreach-lauseen kanssa. Satoa voidaan käyttää useita kertoja iteraattorin kanssa elementtien palauttamiseksi. Se on helppo toteuttaa ja varsin kätevä.

Suositellut artikkelit

Tämä on opas C #: n iteraattoreihin. Tässä keskustellaan esimerkeistä iteroinnin osoittamiseksi erilaisilla menetelmillä, kuten silmukka, foreach-silmukka ja luettelot. Voit myös tarkastella seuraavaa artikkelia saadaksesi lisätietoja-

  1. Tuhoaja C #: ssä
  2. Fibonacci-sarja C: ssä
  3. Menetelmän ohittaminen C #: ssä
  4. C # Loop
  5. Ylivoimainen Java
  6. Työskentely ja 3 suosituinta enumimenetelmää C #: ssä