Junior
Mi az az IEnumerable a C#-ban?
sobes.tech MI
Válasz az MI-től
IEnumerable a C#-ban egy interfész, amely a System.Collections névtérben van definiálva. Általános módot biztosít a kollekció elemeinek bejárására (iterálására).
Az IEnumerable fő jellemzői:
- Iterátorral való hozzáférés: Meghatározza a
GetEnumerator()metódust, amely egyIEnumerator-t implementáló objektumot ad vissza. AzIEnumeratorlehetővé teszi, hogy szekvenciálisan lépkedjünk egyik elemtől a másikig. - Csak olvasható: Az
IEnumerablecsak az elemek bejárását teszi lehetővé. Nem nyújt módszereket az elemek hozzáadására, törlésére vagy módosítására. - Lusta betöltés: Az
IEnumerablehasználata gyakran vezet lusta betöltéshez. Az elemek csak akkor generálódnak vagy töltődnek be, amikor szükség van rájuk az iteráció során. - LINQ alapja: Az
IEnumerablealapvető interfész sok LINQ művelethez. A LINQ kiterjesztő módszerei (Where,Select,OrderBy) olyan kollekciókkal működnek, amelyek megvalósítják azIEnumerable-t, lehetővé téve műveletsorozatok láncolását.
Használati példa:
// Létrehozunk egy string listát
List<string> gyumolcsok = new List<string> { "alma", "banán", "cseresznye" };
// Az elemek bejárása foreach segítségével, ami az `IEnumerable`-t használja
foreach (string gyumolcs in gyumolcsok)
{
// Minden gyümölcs kiírása
Console.WriteLine(gyumolcs);
}
Kapcsolódó interfészek:
| Interfész | Leírás |
|---|---|
IEnumerable |
Az elemek bejárását biztosítja egy kollekcióban |
IEnumerable<T> |
Az IEnumerable generikus változata típusos kollekciókhoz |
ICollection |
Bővíti az IEnumerable-t, hozzáadva méret, elem hozzáadása/törlése módszereket (nem univerzális) |
ICollection<T> |
Az ICollection generikus változata |
IList<T> |
Bővíti az ICollection<T>, hozzáadva az elemek index szerinti elérését |