Sobes.tech
Junior — Middle

Ce metode implementează interfața IEnumerable în limbajul de programare?

sobes.tech AI

Răspuns de la AI

În limbajul C#, interfața IEnumerable este implementată de clase și structuri care furnizează metoda GetEnumerator(), care returnează un obiect ce implementează interfața IEnumerator. Acest lucru permite parcurgerea colecției cu ajutorul buclei foreach.

Principalele moduri de implementare a IEnumerable:

  1. Implementare manuală:
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. Implementarea interfeței generice 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. Utilizarea colecțiilor din biblioteca standard care deja implementează IEnumerable (de exemplu, List<T>, Array).

Prin urmare, punctul cheie este să oferiți metoda GetEnumerator(), care returnează un enumerator pentru traversarea elementelor colecției.