Вступ до ітераторів в C #

Ітератори - це метод, який використовується для отримання елементів і виконує ітерацію по черзі в масивах, списку тощо. Заява про повернення урожайності використовується методом ітератора для повернення елемента колекції, а перерва врожаю використовується для зупинки ітерації . Він завжди зберігає поточне місцезнаходження і повертає наступний елемент, коли відбувається наступна ітерація. Значення об'єкта IEnumerable та IEnumerator є типом повернення врожайності. У цій темі ми збираємось дізнатись про Ітератори в C #.

C # Методи ітераторів

Нижче наведено приклади, які показують ітерацію різними методами, такими як цикл, цикл передбачення та нумератори.

1. Для петлі

Приклад №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();
)
)
)

Цикл for складається з трьох операторів. Спочатку виконується ініціалізація, а потім умова, що є булевим виразом. Після цього виконується ітератор для зміни значення ініціалізованої змінної. Цей процес для циклу триває до тих пір, поки умова не є хибною, а коли вона помилкова - для циклу припиняється.

Вихід з вищевказаного коду є

2. ForEach Loop

Приклад

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

Для повторення елементів використовується цикл foreach, що знаходиться в межах ключового слова. Ключове слово використовується для вибору елемента на кожній ітерації. Перший елемент повторюється і зберігається в елементі після цього другого елемента тощо. Кількість ітерацій викладання залежить від кількості елементів колекції. У цьому прикладі колекція складається з трьох значень, тому кількість передбачень відбудеться три рази та відобразить значення.

Вихід з вищевказаного коду є

3. Лічильники

Приклад №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();
)
)
)
)

У цьому прикладі є масив елемента, який містить п'ять елементів, і foreach використовується для ітерації кожного елемента. Виписка виходу використовується для повернення елемента після кожної ітерації. Численні інтерфейси зберігають кожен елемент, тоді як foreach використовується для відображення повернення елементів від ітерації. Цей ітератор використовується в методі.

Вихід з вищевказаного коду є

Приклад №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();
)
)
)
)

У цьому прикладі використовується колекція списків, а для додавання елементів у список використовується метод list.add. Тут список складається з семи елементів. Для ітерації кожного елемента використовується передбачення. Виписка виходу використовується для повернення елемента після кожної ітерації. Численні інтерфейси зберігають кожен елемент, тоді як foreach використовується для відображення повернення елементів від ітерації.

Вихід з вищевказаного коду є

Приклад №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();
)
)
)
)

У цьому прикладі генерується ряд Фібоначчі, а ітератор використовується в операторі. Реалізація цього ж, як ми використовували ітератори в методі, за винятком того, що в цьому операторах використовується для повернення речей.

Вихід з вищевказаного коду є

Приклад №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();
)
)
)
)

У наведеному вище прикладі використовується колекція списків. Метод list.add використовується для додавання елементів у список. У цьому списку є сім елементів. MoveNext і Current використовуються. MoveNext в основному відстежує, чи є наступний елемент присутній чи ні, і повертає булеве значення, що може бути істинним, якщо елемент доступний і помилковим, якщо немає елемента, тоді як для отримання поточного елемента використовується струм.

Вихід з вищевказаного коду є

Переваги та недоліки Ітератора

Нижче наведено деякі переваги:

  1. Ітератори можуть бути використані в якості методу та отримати аксесуар.
  2. Він може використовуватися як оператори або як власність.
  3. Ітератори легко читати та легко реалізовувати.
  4. Ітератори використовуються із загальними та негенеричними колекціями.

Нижче наведено деякі недоліки:

  1. Ітератори не корисні для зворотного відстеження списку.
  2. Оскільки ітератор зберігає позицію, тому ви не можете оновити ітераційну структуру.
  3. Ітератори не використовуються в статичному конструкторі, статичному фіналізаторі та конструкторі екземплярів.

Висновок - Ітератори в C #

Таким чином, щоб пройти послідовність значень, ітератори можуть використовуватися з оператором foreach. Вихід може бути використаний кілька разів разом з ітератором для повернення елементів. Він простий у виконанні та досить зручний.

Рекомендовані статті

Це посібник із Ітераторів у C #. Тут ми обговорюємо приклади, щоб показати ітерацію різними методами, такими як цикл, цикл передбачення та нумератори. Ви також можете переглянути наступну статтю, щоб дізнатися більше -

  1. Деструктор в C #
  2. Серія Фібоначчі в C #
  3. Перевизначення методу в C #
  4. C # Для циклу
  5. Перевагу в Java
  6. Робота та найкращі 3 методи Enum у C #