Wprowadzenie do iteratorów w C #

Iteratory to metoda używana do pobierania elementów i przeprowadzania iteracji jedna po drugiej w tablicach, na liście itp. Instrukcja return return jest używana wraz z metodą iteratora do zwracania elementu kolekcji, a podział dochodu służy do zatrzymania iteracji . Zawsze zapisuje bieżącą lokalizację i zwraca następny element, gdy ma miejsce następna iteracja. Wartości obiektów IEnumerable i IEnumerator są zwracanym rodzajem wydajności. W tym temacie poznamy Iteratory w języku C #.

Metody iteratorów C #

Poniżej znajdują się przykłady pokazujące iterację różnymi metodami, takimi jak pętla, pętla foreach i moduły wyliczające.

1. Dla pętli

Przykład 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();
)
)
)

Pętla for składa się z trzech instrukcji. Najpierw wykonywana jest inicjalizacja, a następnie warunek, który jest wyrażeniem logicznym. Następnie wykonywany jest iterator w celu zmiany wartości zainicjowanej zmiennej. Proces pętli jest kontynuowany, dopóki warunek nie zostanie spełniony, a gdy będzie fałszem, pętla zakończy się.

Dane wyjściowe powyższego kodu to

2. ForEach Loop

Przykład

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

Pętla foreach wzdłuż słowa kluczowego służy do iteracji elementów. Słowo kluczowe służy do wyboru elementu na każdej iteracji. Pierwszy element jest iterowany i przechowywany w elemencie po drugim elemencie i tak dalej. Liczba iteracji foreach zależy od liczby elementów w kolekcji. W tym przykładzie kolekcja składa się z trzech wartości, więc liczba foreach odbędzie się trzykrotnie i wyświetli wartości.

Dane wyjściowe powyższego kodu to

3. Liczniki

Przykład 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();
)
)
)
)

W tym przykładzie istnieje tablica elementu, która zawiera pięć elementów, a foreach służy do iteracji każdego elementu. Instrukcja return służy do zwracania elementu po każdej iteracji. Interfejs IEnumerable przechowuje każdy element, natomiast foreach służy do wyświetlania elementów zwracanych z iteracji. Ten iterator jest używany w metodzie.

Dane wyjściowe powyższego kodu to

Przykład nr 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();
)
)
)
)

W tym przykładzie użyto kolekcji list, a do dodania elementów na liście użyto metody list.add. Tutaj lista składa się z siedmiu elementów. Foreach służy do iteracji każdego elementu. Instrukcja return służy do zwracania elementu po każdej iteracji. Interfejs IEnumerable przechowuje każdy element, natomiast foreach służy do wyświetlania elementów zwracanych z iteracji.

Dane wyjściowe powyższego kodu to

Przykład nr 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();
)
)
)
)

W tym przykładzie generowana jest seria Fibonacciego, a iterator jest używany w operatorze. Wdrożenie tego samego, co w iteratorach, zastosowaliśmy w metodzie z wyjątkiem tego, że w tym operatorze używa się do zwracania rzeczy.

Dane wyjściowe powyższego kodu to

Przykład 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();
)
)
)
)

W powyższym przykładzie użyto kolekcji list. Metoda List.add służy do dodawania elementów do listy. Tutaj lista zawiera siedem elementów. MoveNext i Current są używane. MoveNext zasadniczo śledzi, czy następny element jest obecny, czy nie, i zwraca wartość logiczną, co może być prawdą, jeśli element jest dostępny, i fałszem, jeśli nie ma elementu, podczas gdy prąd służy do pobrania bieżącego elementu.

Dane wyjściowe powyższego kodu to

Zalety i wady Iteratora

Niektóre zalety wymieniono poniżej:

  1. Iteratory mogą być użyte jako metoda i uzyskać akcesorium.
  2. Może być używany jako operatory lub jako właściwość.
  3. Iteratory są łatwe do odczytania i łatwe do wdrożenia.
  4. Iteratory są używane w kolekcjach ogólnych i nietypowych.

Niektóre z wad wymieniono poniżej:

  1. Iteratory nie są użyteczne przy cofaniu listy.
  2. Ponieważ iterator przechowuje pozycję, więc nie można zaktualizować iterowanej struktury.
  3. Iteratory nie są używane w konstruktorze statycznym, statycznym finalizatorze i konstruktorze instancji.

Wniosek - Iteratory w C #

Aby przejść przez sekwencję wartości, iteratory mogą być używane z instrukcją foreach. Wydajność może być używana wielokrotnie z iteratorem, aby zwrócić elementy. Jest łatwy do wdrożenia i bardzo przydatny.

Polecane artykuły

To jest przewodnik po Iteratorach w C #. Tutaj omawiamy przykłady pokazujące iterację różnymi metodami, takimi jak pętla, pętla foreach i moduły wyliczające. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej-

  1. Niszczyciel w C #
  2. Seria Fibonacciego w C #
  3. Przesłanianie metod w języku C #
  4. C # dla pętli
  5. Przesłanianie w Javie
  6. Praca i 3 najlepsze metody wyliczania w C #