Sobes.tech
Junior — Middle

Kokie metodai įgyvendina IEnumerable sąsają programavimo kalboje?

sobes.tech AI

Atsakymas iš AI

C# kalboje IEnumerable sąsaja įgyvendinama klasėmis ir struktūromis, kurios teikia metodą GetEnumerator(), grąžinantį objektą, įgyvendinantį IEnumerator sąsają. Tai leidžia pereiti per kolekciją naudojant foreach ciklą.

Pagrindiniai IEnumerable įgyvendinimo būdai:

  1. Rankinis įgyvendinimas:
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. Generinio IEnumerable<T> sąsajos įgyvendinimas:
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. Naudojant standartinės bibliotekos kolekcijas, kurios jau įgyvendina IEnumerable (pvz., List<T>, Array).

Svarbiausias dalykas — pateikti GetEnumerator() metodą, kuris grąžina enumeratorių, leidžiantį pereiti per kolekcijos elementus.