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() ысулын тәэмин итү, ул коллекция элементлары буенча йөрү өчен энуматорны кайтара.