Junior — Middle
Milyen módszerek valósítják meg az IEnumerable interfészt a programozási nyelvben?
sobes.tech MI
Válasz az MI-től
A C# nyelvben az IEnumerable interfész implementálva van azok által a osztályok és struktúrák által, amelyek biztosítják a GetEnumerator() metódust, amely egy olyan objektumot ad vissza, amely az IEnumerator interfészt valósítja meg. Ez lehetővé teszi a gyűjtemény bejárását a foreach ciklus segítségével.
Az IEnumerable megvalósításának fő módjai:
- Kézi megvalósítás:
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];
}
}
- A generikus
IEnumerable<T>interfész megvalósítása:
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();
}
- A standard könyvtár gyűjteményeinek használata, amelyek már implementálják az
IEnumerable-t (pl.List<T>,Array).
A lényeges pont az, hogy biztosítsuk a GetEnumerator() metódust, amely egy enumerátort ad vissza a gyűjtemény elemein való végighaladásra.