Sobes.tech
Junior — Middle

Программалоо тилинде IEnumerable интерфейсин ишке ашыруу үчүн кандай ыкмалар бар?

sobes.tech AI

AIден жооп

C# тилинде, IEnumerable интерфейси класстар жана структуралар тарабынан ишке ашырылат, алар GetEnumerator() ыкмасын камсыз кылат, ал IEnumerator интерфейсин ишке ашыратуучу объектти кайтарат. Бул коллекцияны foreach цикли аркылуу өтүүгө мүмкүндүк берет.

IEnumerable ишке ашыруунун негизги жолдору:

  1. Кол менен ишке ашыруу:
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];
    }
}
  1. Жалпы 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();
}
  1. Стандарт китепкананын коллекцияларын колдонуу, алар алдын ала IEnumerable ишке ашырган (мисалы, List<T>, Array).

Негизги мааниси — GetEnumerator() ыкмасын камсыз кылуу, ал коллекциянын элементтерин өтүү үчүн энуматорду кайтарат.