Algoritm pdf


Download 292.61 Kb.
Pdf ko'rish
bet3/7
Sana17.12.2022
Hajmi292.61 Kb.
#1025440
1   2   3   4   5   6   7
Bog'liq
algoritm

Iteratorni qo'llash:
Ko'rib turganimizdek, aksariyat to'plamlar uchun asosiy narsa IEnumerable va 
IEnumerator interfeyslarini amalga oshirishdir. Bunday amalga oshirish tufayli biz 
foreach loopidagi ob'ektlarni takrorlashimiz mumkin:
foreach(var item in перечислимый_объект)
{
}
Yineleyebilir to'plam IEnumerable interfeysini amalga oshirishi kerak.
IEnumerable interfeysi boshqa numerator interfeysiga havolani qaytaradigan 
usulga ega: 
public interface IEnumerable
{
IEnumerator GetEnumerator();
}
Va IEnumerator interfeysi konteynerdagi ichki 
ob'ektlarni qidirish funktsiyasini belgilaydi:
public interface IEnumerator
{
bool MoveNext(); // перемещение на одну позицию 
вперед в контейнере элементов


object Current {get;} // текущий элемент в 
контейнере
void Reset(); // перемещение в начало контейнера
}
MoveNext() usuli ko'rsatgichni joriy elementga ketma-ketlikdagi keyingi holatga 
o'tkazadi. Agar ketma-ketlik hali tugamagan bo'lsa, u holda true qaytadi. Agar 
ketma-ketlik tugagan bo'lsa, u holda false qaytariladi.
Joriy xususiyat ob'ektni ko'rsatgich tomonidan ko'rsatilgan ketma-ketlikda 
qaytaradi.
Reset() usuli pozitsiya ko'rsatgichini boshlang'ich holatiga qaytaradi.
Ko'rsatgichning harakati qanday amalga oshiriladi va elementlarni olish interfeysni
amalga oshirishga bog'liq. Turli xil dasturlarda mantiqni turli yo'llar bilan qurish 
mumkin.
Masalan, foreach loopidan foydalanmasdan, IEnumerator interfeysi yordamida 
massivni ko'rib chiqamiz:
using System.Collections;
string[] people = {"Tom", "Sam", "Bob"};
IEnumerator peopleEnumerator = 
people.GetEnumerator(); // получаем IEnumerator
while (peopleEnumerator.MoveNext()) // пока не будет 
возвращено false
{
string item = (string)peopleEnumerator.Current; // 
получаем элемент на текущей позиции
Console.WriteLine(item);
}
peopleEnumerator.Reset(); // сбрасываем указатель в 
начало массива

Download 292.61 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling