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:
- 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];
}
}
- 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();
}
- 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.