Bevezetés az Iteratorokba a C # -ben

Az iteratorok az az elem, amelyet az elemek lekérdezéséhez használnak, és egyenként iterálást hajtanak végre tömbökben, listákban stb. . Mindig tárolja az aktuális helyet, és visszatér a következő elemhez, amikor a következő iteráció megtörténik. Az IEnumerable és az IEnumerator objektumértékek a hozam visszatérési típusa. Ebben a témában megismerjük a C # Iteratorokat.

C # Iterator módszerek

Az alábbiakban példákat mutatunk be az iteráció bemutatására különféle módszerekkel, mint például a hurok, az foreach hurok és a felsorolók.

1. A hurok számára

1. példa

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

Az A for hurok három állításból áll. Először az inicializálást végrehajtjuk, majd azt a feltételt, amely logikai kifejezés. Ezután az iterátort végrehajtják az inicializált változó értékének megváltoztatására. Ez a hurokfolyamat addig folytatódik, amíg a feltétel hamis, és hamis, ha a hurok megszűnik.

A fenti kód kimenete:

2. ForEach Loop

Példa

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

A kulcsszó mentén egy foreach hurkot használnak az elemek iterálására. A kulcsszó az elem kiválasztására szolgál minden egyes iterációnál. Az első cikket iterálják és az elemben tárolják a második elem után és így tovább. A foreach iterációjának száma a gyűjtemény elemeinek számától függ. Ebben a példában a gyűjtemény három értékből áll, így az előadások száma háromszor megtörténik, és megjeleníti az értékeket.

A fenti kód kimenete:

3. Felsorolók

1. példa

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

Ebben a példában van egy elem tömb, amely öt elemet tartalmaz, és az foreach az egyes elemek iterálására szolgál. A hozamnyilatkozatot az elem visszaadására használják minden iteráció után. Számtalan felület minden elemet tárol, míg az foreach az iterációból visszatérő elemek megjelenítésére szolgál. Ezt az iterátort egy módszerben használják.

A fenti kód kimenete:

2. példa

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

Ebben a példában a listagyűjteményt és a list.add módszert használják az elemek hozzáadásához a listához. Itt a lista hét elemből áll. Előszó használatos az egyes elemek iterációjához. A hozamnyilatkozatot az elem visszaadására használják minden iteráció után. Számtalan felület minden elemet tárol, míg az foreach az iterációból visszatérő elemek megjelenítésére szolgál.

A fenti kód kimenete:

3. példa

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

Ebben a példában a Fibonacci sorozatot generálják, és az iterátort egy operátorban használják. Ugyanaz a megvalósítás, mint amit iterátorokat alkalmaztunk egy módszerben, azzal a különbséggel, hogy ebben az operátorban a dolgok visszaadására használjuk.

A fenti kód kimenete:

4. példa

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

A fenti példában a listagyűjteményt használjuk. A List.add metódus elemeket ad a listához. Ez a lista hét elemet tartalmaz. A MoveNext és az Current használható. A MoveNext alapvetően nyomon követi, ha van-e a következő elem, vagy sem, és visszaadja a logikai értékeket, amelyek igazak lehetnek, ha az elem elérhető, és hamisak, ha nincs elem, míg az áram az aktuális elem lekérésére szolgál.

A fenti kód kimenete:

Az Iterator előnyei és hátrányai

Néhány előnyt az alábbiakban említünk:

  1. Az Iteratorok módszerként használhatók és hozzáférést igényelhetnek.
  2. Használható operátorként vagy ingatlanként.
  3. Az Iteratorok könnyen olvashatók és végrehajthatók.
  4. Az Iteratorokat az általános és a nem általános gyűjteményeknél használják.

Néhány hátrányt az alábbiakban említünk:

  1. Az Iteratorok nem hasznosak a lista visszakeresésében.
  2. Mivel az iterator tárolja a pozíciót, így nem lehet frissíteni az iterált struktúrát.
  3. Az Iteratorokat nem használják a statikus kivitelezőben, a statikus véglegesítőben és a példány kivitelezőben.

Következtetés - I-teratorok C # -ben

Tehát az értékek sorozatának áthaladásához iteratorokat lehet használni az foreach utasításhoz. A hozam többször használható az iteratorral az elemek visszatérítéséhez. Könnyen megvalósítható és nagyon praktikus.

Ajánlott cikkek

Ez egy útmutató az Iteratorokhoz a C # -ben. Itt tárgyaljuk a példákat az iteráció bemutatására különféle módszerekkel, mint például a hurok, az foreach hurok és a felsorolók. A következő cikkben további információkat is megtudhat -

  1. Romboló C # -ben
  2. Fibonacci sorozat a C # -ben
  3. Módszer felülbíráló C #
  4. C # hurokhoz
  5. A Java alapon érvényes
  6. Munka és a 3 legfontosabb Enum módszer a C # -ben.

Kategória: