Junior — Middle
Мо метавонед шарҳи кунед, ки паттерни тарҳрезии итератор чӣ гуна аст ва чӣ гуна истифода мешавад?
sobes.tech AI
Ҷавоб аз AI
Үлгілердің жобалау Итератор (Iterator) — жиналған элементтерді бірінен соң бірін өту үшін арналған, оның ішкі құрылымын ашпай.
Негізгі идея:
- Итератор коллекцияның элементтеріне бір-бірден қол жеткізу үшін интерфейс ұсынады.
- Клиенттік кодқа коллекцияның ішкі құрылымын білмей, элементтерді өтуге мүмкіндік береді.
C# тілінде итератор IEnumerator және IEnumerable интерфейстері арқылы жүзеге асырылады. Әдетте, yield кілт сөзі пайдаланылады, ол итераторларды жасау процесін жеңілдетеді.
C# тілінде итератордың мысалы:
using System;
using System.Collections;
using System.Collections.Generic;
class MyCollection : IEnumerable<int>
{
private int[] data = {1, 2, 3, 4, 5};
public IEnumerator<int> GetEnumerator()
{
foreach (var item in data)
{
yield return item; // элементтерді бір-бірден қайтарады
}
}
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
class Program
{
static void Main()
{
var collection = new MyCollection();
foreach (var item in collection)
{
Console.WriteLine(item);
}
}
}
Мұнда, MyCollection IEnumerable<int>-ті жүзеге асырады, бұл foreach қолдануға мүмкіндік береді. Итератор деректердің сақтау бөлшектерін жасырады және оларды өту үшін қарапайым жолды ұсынады.