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 interfejsIEnumerator.IEnumeratorumożliwia sekwencyjne przechodzenie od jednego elementu kolekcji do drugiego. - Tylko do odczytu:
IEnumerablepozwala tylko na iterację elementów. Nie zapewnia metod do dodawania, usuwania czy modyfikacji elementów kolekcji. - Leniwa ładowanie: Użycie
IEnumerableczęsto prowadzi do leniwej ładowania. Elementy są generowane lub ładowane tylko w razie potrzeby podczas iteracji. - Podstawa LINQ:
IEnumerablejest fundamentalnym interfejsem dla wielu operacji LINQ. Metody rozszerzeń LINQ (takie jakWhere,Select,OrderBy) działają na kolekcjach implementującychIEnumerable, 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 |