Sobes.tech
Junior — Middle

Aké metódy implementujú rozhranie IEnumerable v programovacom jazyku?

sobes.tech AI

Odpoveď od AI

V jazyku C# je rozhranie IEnumerable implementované triedami a štruktúrami, ktoré poskytujú metódu GetEnumerator(), ktorá vracia objekt implementujúci rozhranie IEnumerator. To umožňuje prechádzať kolekciu pomocou slučky foreach.

Hlavné spôsoby implementácie IEnumerable:

  1. Ručná implementácia:
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. Implementácia generického rozhrania 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. Použitie kolekcií z knižnice štandardu, ktoré už implementujú IEnumerable (napríklad List<T>, Array).

Kľúčovým bodom je poskytnúť metódu GetEnumerator(), ktorá vracia enumerátor na prechádzanie prvkami kolekcie.