Junior — Middle
Бағдарламалау тілінде IEnumerable интерфейсін жүзеге асыратын қандай әдістер бар?
sobes.tech AI
AI-дан жауап
C# тілінде IEnumerable интерфейсі оны жүзеге асыратын кластар мен құрылымдар арқылы жүзеге асырылады, олар GetEnumerator() әдісін қамтамасыз етеді, ол IEnumerator интерфейсін жүзеге асыратын объектіні қайтарады. Бұл коллекцияны foreach циклымен айналдыруға мүмкіндік береді.
IEnumerable-ді жүзеге асырудың негізгі тәсілдері:
- Қолмен жүзеге асыру:
public class MyCollection : IEnumerable
{
private object[] items = {1, 2, 3};
public IEnumerator GetEnumerator()
{
for (int i = 0; i < items.Length; i++)
yield return items[i];
}
}
- Жалпы интерфейс
IEnumerable<T>-ді жүзеге асыру:
public class MyCollection<T> : IEnumerable<T>
{
private T[] items;
public MyCollection(T[] items) { this.items = items; }
public IEnumerator<T> GetEnumerator()
{
for (int i = 0; i < items.Length; i++)
yield return items[i];
}
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
- Стандартты кітапханадан коллекцияларды пайдалану, олар бұрыннан
IEnumerable-ді жүзеге асырады (мысалы,List<T>,Array).
Осылайша, негізгі нәрсе — GetEnumerator() әдісін қамтамасыз ету, ол коллекция элементтерін айналып өту үшін итераторды қайтарады.