Introductie tot Iterators in C #

Iterators zijn de methode die wordt gebruikt om de elementen op te halen en iteratie één voor één uit te voeren in arrays, lijst, enz. De instructie rendement-rendement wordt gebruikt met de iterator-methode om het element van de verzameling te retourneren en opbrengstonderbreking wordt gebruikt om de iteratie te stoppen . Het slaat altijd de huidige locatie op en retourneert het volgende element wanneer de volgende iteratie plaatsvindt. IEnumerable en IEnumerator-objectwaarden zijn het retourtype opbrengst. In dit onderwerp gaan we leren over Iterators in C #.

C # Iterators Methoden

Hieronder staan ​​de voorbeelden om iteratie te tonen met verschillende methoden zoals de lus, elke lus en opsommers.

1. Voor lus

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

Een for-lus bestaat uit drie statements. Eerst wordt initialisatie uitgevoerd en vervolgens voorwaarde die een Booleaanse uitdrukking is. Daarna wordt de iterator uitgevoerd om de waarde van de geïnitialiseerde variabele te wijzigen. Dit for-lusproces gaat door totdat de voorwaarde onwaar is en wanneer deze onwaar is, wordt de lus beëindigd.

De uitvoer van de bovenstaande code is

2. Voor elke lus

Voorbeeld

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

Een foreach-lus langs het trefwoord wordt gebruikt om items te herhalen. Het trefwoord wordt gebruikt om het item bij elke iteratie te selecteren. Het eerste item wordt herhaald en opgeslagen in het element na dat tweede item enzovoort. Het aantal iteraties van foreach is afhankelijk van het aantal elementen in de collectie. In dit voorbeeld bestaat de verzameling uit drie waarden, dus het aantal foreach zal drie keer plaatsvinden en de waarden weergeven.

De uitvoer van de bovenstaande code is

3. Tellers

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

In dit voorbeeld is er een array van het element dat vijf elementen bevat en foreach wordt gebruikt voor iteratie van elk element. De rendementsverklaring wordt gebruikt om het element na elke iteratie terug te geven. Een ontelbare interface slaat elk element op, terwijl foreach wordt gebruikt om de elementen weer te geven die terugkeren uit de iteratie. Deze iterator wordt in een methode gebruikt.

De uitvoer van de bovenstaande code is

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

In dit voorbeeld wordt de lijstverzameling gebruikt en de methode list.add voor het toevoegen van elementen aan de lijst. Hier bestaat de lijst uit zeven elementen. Een foreach wordt gebruikt voor iteratie van elk element. De rendementsverklaring wordt gebruikt om het element na elke iteratie terug te geven. Een ontelbare interface slaat elk element op, terwijl foreach wordt gebruikt om de elementen weer te geven die terugkeren uit de iteratie.

De uitvoer van de bovenstaande code is

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

In dit voorbeeld wordt de Fibonacci-serie gegenereerd en wordt de iterator in een operator gebruikt. De implementatie hiervan hetzelfde als we iterators gebruikten in een methode, behalve dat in deze operators dingen worden geretourneerd.

De uitvoer van de bovenstaande code is

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

In het bovenstaande voorbeeld wordt lijstverzameling gebruikt. De methode List.add wordt gebruikt om elementen aan de lijst toe te voegen. Hier bevat de lijst zeven elementen. MoveNext en Current worden gebruikt. MoveNext volgt in principe of het volgende element aanwezig is of niet en retourneert Boolean, wat waar kan zijn als het element beschikbaar is en false als er geen element is, terwijl de huidige wordt gebruikt om het huidige element op te halen.

De uitvoer van de bovenstaande code is

Voor- en nadelen van Iterator

Enkele van de voordelen worden hieronder vermeld:

  1. Iterators kunnen als methode worden gebruikt en krijgen accessor.
  2. Het kan worden gebruikt als operatoren of als een eigenschap.
  3. Iterators zijn gemakkelijk te lezen en gemakkelijk te implementeren.
  4. Iterators worden gebruikt met de generieke en niet-generieke collecties.

Enkele van de nadelen worden hieronder vermeld:

  1. Iterators zijn niet nuttig bij het terugtrekken van een lijst.
  2. Omdat iterator de positie opslaat, kunt u de iteratie niet bijwerken.
  3. Iterators worden niet gebruikt in de statische constructor, statische finalizer en instantieconstructor.

Conclusie - Iterators in C #

Dus om de reeks waarden te doorlopen, kunnen iterators worden gebruikt met de instructie foreach. Opbrengst kan meerdere keren worden gebruikt met iterator om de elementen te retourneren. Het is eenvoudig te implementeren en best handig.

Aanbevolen artikelen

Dit is een gids voor Iterators in C #. Hier bespreken we de voorbeelden om iteratie te tonen met verschillende methoden, zoals de lus, elke lus en enumerators. U kunt ook het volgende artikel bekijken voor meer informatie-

  1. Destructor in C #
  2. Fibonacci-serie in C #
  3. Methode overschrijven in C #
  4. C # voor lus
  5. Overschrijven in Java
  6. Werken en Top 3 Enum-methoden in C #