Introduktion till Iteratorer i C #

Iteratorer är den metod som används för att hämta elementen och utför iteration en efter en i matriser, lista osv. Avkastningsmeddelandet används med iteratormetoden för att returnera elementet i samlingen och avkastningsavbrott används för att stoppa iterationen . Den lagrar alltid den aktuella platsen och returnerar nästa element när nästa iteration äger rum. IEnumerable och IEnumerator-objektvärden är avkastningstypens avkastning. I det här ämnet kommer vi att lära oss om Iteratorer i C #.

C # Iterators metoder

Nedan följer exemplen för att visa iteration med olika metoder som loop, foreach loop och tal.

1. För Loop

Exempel 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 for loop består av tre uttalanden. Först utförs initialisering och sedan villkor som är ett booleskt uttryck. Därefter körs iteratorn för att ändra den initialiserade variabelns värde. Detta för slingprocess fortsätter tills villkoret är falskt och när det är falskt, för slingan avslutas.

Utgången från ovanstående kod är

2. ForEach Loop

Exempel

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

En förhandsslinga i nyckelordet används för att iterera objekt. Nyckelordet används för att välja objektet på varje iteration. Det första objektet itereras och lagras i elementet efter det andra objektet och så vidare. Antalet iteration av foreach beror på antalet element i samlingen. I det här exemplet består samlingen av tre värden, så antalet förhand kommer att äga rum tre gånger och visa värdena.

Utgången från ovanstående kod är

3. Räknare

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

I det här exemplet finns det en grupp av elementet som innehåller fem element och foreach används för iteration av varje element. Avkastningsrapporten används för att returnera elementet efter varje iteration. IEnumerable gränssnitt lagrar varje element medan foreach används för att visa elementen tillbaka från iterationen. Denna iterator används i en metod.

Utgången från ovanstående kod är

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

I det här exemplet används listsamling och metoden list.add används för att lägga till element i listan. Här består listan av sju element. En förhand används för iteration av varje element. Avkastningsrapporten används för att returnera elementet efter varje iteration. IEnumerable gränssnitt lagrar varje element medan foreach används för att visa elementen tillbaka från iterationen.

Utgången från ovanstående kod är

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

I detta exempel genereras Fibonacci-serien och iteratorn används i en operatör. Implementeringen av samma sak som vi använde iteratorer i en metod förutom att i den här operatören används för att returnera saker.

Utgången från ovanstående kod är

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

I exemplet ovan används listsamling. List.add-metoden används för att lägga till element i listan. Här listan innehåller sju element. MoveNext och Current används. MoveNext spårar i princip om nästa element finns eller inte och returnerar boolean som kan vara sant om elementet är tillgängligt och falskt om det inte finns något element medan strömmen används för att hämta det aktuella elementet.

Utgången från ovanstående kod är

Fördelar och nackdelar med Iterator

Några av fördelarna nämns nedan:

  1. Iteratorer kan användas som en metod och få accessor.
  2. Det kan användas som operatörer eller som egendom.
  3. Iteratorer är lätta att läsa och lätta att implementera.
  4. Iteratorer används med generiska och icke-generiska samlingar.

Några av nackdelarna nämns nedan:

  1. Iteratorer är inte användbara vid backspårning av en lista.
  2. När iterator lagrar positionen så kan du inte uppdatera den itererade strukturen.
  3. Iteratorer används inte i statisk konstruktör, statisk slutbehandlare och instanskonstruktör.

Slutsats - Iteratorer i C #

Så för att gå igenom sekvensen av värden kan iteratorer användas med foreach-uttalandet. Utbyte kan användas flera gånger med iterator för att returnera elementen. Det är lätt att implementera och ganska praktiskt.

Rekommenderade artiklar

Detta är en guide till Iteratorer i C #. Här diskuterar vi exemplen för att visa iteration med olika metoder som loop, foreach loop och enumerators. Du kan också titta på följande artikel för att lära dig mer-

  1. Destruktor i C #
  2. Fibonacci-serien i C #
  3. Metodöverskridande i C #
  4. C # för slinga
  5. Övergripande i Java
  6. Working and Top 3 Enum Methods in C #

Kategori: