Sobes.tech
Junior

Cos'è IEnumerable in C#?

sobes.tech AI

Risposta dell'AI

IEnumerable in C# è un'interfaccia definita nello spazio dei nomi System.Collections. Fornisce un modo generale per scorrere (iterare) gli elementi di una collezione.

Caratteristiche principali di IEnumerable:

  • Accesso tramite iteratore: Definisce il metodo GetEnumerator(), che restituisce un oggetto che implementa l'interfaccia IEnumerator. IEnumerator permette di passare sequenzialmente da un elemento della collezione all'altro.
  • Solo lettura: IEnumerable consente solo di attraversare gli elementi. Non fornisce metodi per aggiungere, rimuovere o modificare gli elementi della collezione.
  • Caricamento pigro: L'uso di IEnumerable porta spesso a un caricamento pigro. Gli elementi vengono generati o caricati solo quando necessario durante l'iterazione.
  • Base di LINQ: IEnumerable è un'interfaccia fondamentale per molte operazioni LINQ. I metodi di estensione LINQ (come Where, Select, OrderBy) lavorano con collezioni che implementano IEnumerable, consentendo di creare catene di operazioni.

Esempio di utilizzo:

// Creiamo una lista di stringhe
List<string> frutti = new List<string> { "mela", "banana", "ciliegia" };

// Iteriamo gli elementi della lista usando foreach, che funziona con IEnumerable
foreach (string frutto in frutti)
{
    // Stampiamo ogni frutto
    Console.WriteLine(frutto);
}

Interfacce correlate:

Interfaccia Descrizione
IEnumerable Fornisce l'iterazione degli elementi di una collezione
IEnumerable<T> Versione generica di IEnumerable per collezioni tipizzate
ICollection Estende IEnumerable, aggiunge metodi per dimensione, aggiunta/rimozione di elementi (non universale)
ICollection<T> Versione generica di ICollection
IList<T> Estende ICollection<T>, aggiunge accesso agli elementi tramite indice