Sobes.tech
Junior

Šta je IEnumerable u C#?

sobes.tech АИ

Одговор од АИ

IEnumerable u C#-u je interfejs definisan u prostoru imena System.Collections. On pruža opšti način za prolazak (iteraciju) kroz elemente kolekcije.

Ključne osobine IEnumerable:

  • Pristup putem iteratora: Definiše metodu GetEnumerator(), koja vraća objekat koji implementira interfejs IEnumerator. IEnumerator omogućava sekvencijalno prelaziti sa jednog elementa kolekcije na drugi.
  • Samo za čitanje: IEnumerable omogućava samo prolazak kroz elemente. Ne pruža metode za dodavanje, brisanje ili modifikaciju elemenata kolekcije.
  • Leno učitavanje: Korišćenje IEnumerable često dovodi do lenog učitavanja. Elementi se generišu ili učitavaju samo kada je to potrebno tokom iteracije.
  • Osnova LINQ: IEnumerable je fundamentalni interfejs za mnoge LINQ operacije. LINQ ekstenzijske metode (kao što su Where, Select, OrderBy) rade sa kolekcijama koje implementiraju IEnumerable, omogućavajući kreiranje lanaca operacija.

Primer upotrebe:

// Kreiramo listu stringova
List<string> voće = new List<string> { "jabuka", "banana", "trešnja" };

// Prolazimo kroz elemente liste pomoću foreach, koji radi sa IEnumerable
foreach (string plod in voće)
{
    // Štampamo svaki plod
    Console.WriteLine(plod);
}

Povezani interfejsi:

Interfejs Opis
IEnumerable Omogućava iteraciju kroz elemente kolekcije
IEnumerable<T> Generička verzija IEnumerable za tipizirane kolekcije
ICollection Proširuje IEnumerable, dodaje metode za veličinu, dodavanje/brisanje elemenata (ne univerzalno)
ICollection<T> Generička verzija ICollection
IList<T> Proširuje ICollection<T>, dodaje pristup elementima putem indeksa