Úvod do Iterátorov v jazyku C #

Iterátory sú metóda, ktorá sa používa na získavanie prvkov a vykonávanie iterácie jeden po druhom v poliach, zozname atď. Príkaz návratnosti výnosov sa používa s metódou iterátora na vrátenie prvku kolekcie a zlomenie výnosov sa používa na zastavenie iterácie., Vždy uloží aktuálne umiestnenie a vráti ďalší prvok, keď sa uskutoční ďalšia iterácia. Hodnoty objektov IEnumerable a IEnumerator sú návratovým typom výnosu. V tejto téme sa dozvieme viac o Iterátoroch v jazyku C #.

Metódy C # Iterátorov

Nižšie sú uvedené príklady, ktoré ukazujú iteráciu s rôznymi metódami, ako sú slučka, foreach slučka a enumerátory.

1. Pre slučku

Príklad č. 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();
)
)
)

Slučka for for pozostáva z troch príkazov. Najprv sa vykoná inicializácia a potom podmienka, ktorá je booleovským výrazom. Potom sa vykoná iterátor na zmenu hodnoty inicializovanej premennej. Toto pre slučkový proces pokračuje, kým podmienka nie je neplatná a keď nie je správna, pre slučku neskončí.

Výstup vyššie uvedeného kódu je

2. Predná slučka

príklad

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

Cyklus foreach pozdĺž kľúčového slova sa používa na opakovanie položiek. Kľúčové slovo sa používa na výber položky v každej iterácii. Prvá položka je iterovaná a uložená v prvku za druhou položkou atď. Počet iterácií foreach závisí od počtu prvkov v zbierke. V tomto príklade sa zbierka skladá z troch hodnôt, takže počet foreach sa uskutoční trikrát a hodnoty sa zobrazia.

Výstup vyššie uvedeného kódu je

3. Čítacie jednotky

Príklad č. 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 tomto príklade existuje pole prvku, ktoré obsahuje päť prvkov a foreach sa používa na iteráciu každého prvku. Výnos sa používa na vrátenie prvku po každej iterácii. Nečíselné rozhranie ukladá každý prvok, zatiaľ čo foreach sa používa na zobrazenie prvkov návratu z iterácie. Tento iterátor sa používa v metóde.

Výstup vyššie uvedeného kódu je

Príklad č. 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 tomto príklade sa používa kolekcia zoznamu a metóda list.add sa používa na pridávanie prvkov do zoznamu. Zoznam sa skladá zo siedmich prvkov. Na iteráciu každého prvku sa používa foreach. Výnos sa používa na vrátenie prvku po každej iterácii. Nečíselné rozhranie ukladá každý prvok, zatiaľ čo foreach sa používa na zobrazenie prvkov návratu z iterácie.

Výstup vyššie uvedeného kódu je

Príklad č. 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 tomto príklade sa vygeneruje séria Fibonacci a iterátor sa použije v operátorovi. Implementácia toho istého, ako sme použili iterátory v metóde s výnimkou toho, že v tomto operátori sa používa na vrátenie vecí.

Výstup vyššie uvedeného kódu je

Príklad č. 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();
)
)
)
)

Vo vyššie uvedenom príklade sa používa zbierka zoznamov. Metóda List.add sa používa na pridávanie prvkov do zoznamu. Tento zoznam obsahuje sedem prvkov. Používa sa MoveNext a Current. MoveNext v podstate sleduje, či je alebo nie je prítomný ďalší prvok, a vracia boolean, čo môže byť pravda, ak je prvok k dispozícii, a nepravdivý, ak neexistuje žiadny prvok, zatiaľ čo prúd sa používa na načítanie aktuálneho prvku.

Výstup vyššie uvedeného kódu je

Výhody a nevýhody Iterátora

Niektoré z výhod sú uvedené nižšie:

  1. Iterátory môžu byť použité ako metóda a získajú prístup.
  2. Môže byť použitý ako operátor alebo ako nehnuteľnosť.
  3. Iterátory sú ľahko čitateľné a ľahko implementovateľné.
  4. Iterátory sa používajú v generických a ne-generických zbierkach.

Niektoré z nevýhod sú uvedené nižšie:

  1. Iterátory nie sú užitočné pri spätnom sledovaní zoznamu.
  2. Ako iterátor uloží pozíciu, takže nemôžete aktualizovať iterovanú štruktúru.
  3. Iterátory sa nepoužívajú v statickom konštruktore, statickom finalizátore a konštruktore inštancií.

Záver - Iterátory v C #

Takže na posúvanie postupnosti hodnôt je možné s príkazmi foreach použiť iterátory. Výnos je možné s iterátorom použiť viackrát na vrátenie prvkov. Je ľahké ho implementovať a je veľmi šikovný.

Odporúčané články

Toto je sprievodca Iterátormi v jazyku C #. Tu diskutujeme príklady, aby sme ukázali iteráciu rôznymi metódami, ako sú slučka, foreach slučka a enumerátory. Ak sa chcete dozvedieť viac, pozrite si nasledujúci článok

  1. Destruktor v C #
  2. Fibonacciho séria v C #
  3. Prepísanie metódy v jazyku C #
  4. C # Pre slučku
  5. Prevláda v Jave
  6. Pracovné a najlepšie 3 metódy výčtu v C #

Kategórie: