Sobes.tech
Junior

Czym jest IEnumerable w C#?

sobes.tech AI

Odpowiedź od AI

IEnumerable w C# to interfejs zdefiniowany w przestrzeni nazw System.Collections. Zapewnia ogólny sposób iteracji (przeglądania) elementów kolekcji.

Kluczowe cechy IEnumerable:

  • Dostęp przez iterator: Definiuje metodę GetEnumerator(), która zwraca obiekt implementujący interfejs IEnumerator. IEnumerator umożliwia sekwencyjne przechodzenie od jednego elementu kolekcji do drugiego.
  • Tylko do odczytu: IEnumerable pozwala tylko na iterację elementów. Nie zapewnia metod do dodawania, usuwania czy modyfikacji elementów kolekcji.
  • Leniwa ładowanie: Użycie IEnumerable często prowadzi do leniwej ładowania. Elementy są generowane lub ładowane tylko w razie potrzeby podczas iteracji.
  • Podstawa LINQ: IEnumerable jest fundamentalnym interfejsem dla wielu operacji LINQ. Metody rozszerzeń LINQ (takie jak Where, Select, OrderBy) działają na kolekcjach implementujących IEnumerable, umożliwiając tworzenie łańcuchów operacji.

Przykład użycia:

// Tworzymy listę stringów
List<string> owoce = new List<string> { "jabłko", "banan", "wiśnia" };

// Iterujemy elementy listy za pomocą foreach, które działa z IEnumerable
foreach (string owoc in owoce)
{
    // Wyświetlamy każdy owoc
    Console.WriteLine(owoc);
}

Powiązane interfejsy:

Interfejs Opis
IEnumerable Zapewnia iterację elementów kolekcji
IEnumerable<T> Generyczna wersja IEnumerable dla kolekcji typowanych
ICollection Rozszerza IEnumerable, dodaje metody do rozmiaru, dodawania/usuwania elementów (nie uniwersalne)
ICollection<T> Generyczna wersja ICollection
IList<T> Rozszerza ICollection<T>, dodaje dostęp do elementów po indeksie