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(), който връща итератор за обхождане на елементите на колекцията.