Увод у Итератор у Ц #

Итератори су метода која се користи за проналажење елемената и изводи итерација једну по једну у низовима, списковима итд. Изјава о поврату приноса користи се методом итератора за враћање елемента колекције и прекид приноса користи се за заустављање итерације . Увек чува тренутну локацију и враћа следећи елемент када се догоди следећа итерација. Небројене и ИЕнумератор вредности објекта су повратни тип приноса. У овој теми ћемо сазнати о Итераторима у Ц #.

Ц # Методи итератора

Испод су примери који показују итерацију различитим методама као што су петља, петља фореацх и пописивачи.

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

Петља за петљу састоји се од три исказа. У почетку се извршава иницијализација, а затим услов који је логични израз. Након тога се извршава итератор за промјену вриједности иницијализиране варијабле. Овај поступак за петљу траје док услов није лажан, а када је лажан, за петљу престаје.

Излаз горњег кода је

2. ФорЕацх петља

Пример

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

За понављање ставки користи се петља фореацх-а унутар кључне речи. Кључна реч се користи за одабир ставке у свакој итерацији. Прва ставка се понавља и похрањује у елемент након те друге ставке и тако даље. Број итерација предобре зависи од броја елемената у колекцији. У овом примјеру, колекција се састоји од три вриједности тако да ће се број фореацх-а одржати три пута и приказати вриједности.

Излаз горњег кода је

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

У овом примјеру постоји низ елемената који садржи пет елемената и користи се фореацх за итерацију сваког елемента. Изјава о приносу користи се за враћање елемента након сваке итерације. Небројени интерфејс чува сваки елемент док се фореацх користи за приказ повратка елемената из итерације. Овај итератор се користи у методи.

Излаз горњег кода је

Пример бр. 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();
)
)
)
)

У овом примјеру користи се колекција листе, а метода додавања листе.адд користи се за додавање елемената у листу. Овде се листа састоји од седам елемената. За понављање сваког елемента користи се предигра. Изјава о приносу користи се за враћање елемента након сваке итерације. Небројени интерфејс чува сваки елемент док се фореацх користи за приказ повратка елемената из итерације.

Излаз горњег кода је

Пример бр. 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();
)
)
)
)

У горњем примјеру користи се збирка листа. Лист.адд метода користи се за додавање елемената у листу. Овде листа садржи седам елемената. Користе се МовеНект и Цуррент. МовеНект у основи прати је ли следећи елемент присутан или не и враћа боолеан што може бити истинито ако је елемент доступан и фалсе ако нема елемента док се за проналажење тренутног елемента користи струја.

Излаз горњег кода је

Предности и недостаци итератора

Неке од предности су наведене у наставку:

  1. Итератори се могу користити као метода и добити приступ.
  2. Може се користити као оператор или као имовина.
  3. Итератори се лако читају и лако их је имплементирати.
  4. Итератори се користе са генеричким и не генеричким колекцијама.

У наставку су наведени неки недостаци:

  1. Итератори нису корисни у повлачењу листе.
  2. Како итератор похрањује позицију тако да не можете ажурирати поновљену структуру.
  3. Итератори се не користе у статичком конструктору, статичком финализатору и конструктору инстанци.

Закључак - Итератори у Ц #

Дакле, за кретање редоследа вредности, итератори се могу користити са наредбом фореацх. Принос се може користити више пута помоћу итератора за враћање елемената. Једноставан је за имплементацију и врло згодан.

Препоручени чланци

Ово је водич за Итератор у Ц #. Овде смо расправљали о примерима за приказивање итерације различитим методама као што су петља, петља фореацх и пописивачи. Такође можете погледати следећи чланак да бисте сазнали више -

  1. Деструктор у Ц #
  2. Фибонаццијева серија у Ц #
  3. Прегласавање метода у Ц #
  4. Ц # За петљу
  5. Превладавање у Јави
  6. Рад и топ 3 Енум методе у Ц #

Категорија: