Junior — Middle
Jaka jest różnica między różnymi typami interfejsów kolekcji?
sobes.tech AI
Odpowiedź od AI
W C# interfejsy kolekcji definiują różne kontrakty do pracy z zestawami danych, a ich różnice polegają na funkcjonalności i przeznaczeniu:
- IEnumerable<T> — podstawowy interfejs do iteracji przez kolekcję za pomocą foreach. Pozwala tylko na odczyt elementów pojedynczo.
- ICollection<T> — rozszerza IEnumerable<T>, dodaje metody do modyfikacji kolekcji (Add, Remove), właściwości Count i IsReadOnly.
- IList<T> — rozszerza ICollection<T>, dodaje indeksator do dostępu po indeksie, metody wstawiania i usuwania po indeksie.
- IDictionary<TKey, TValue> — reprezentuje kolekcję par klucz-wartość, gdzie dostęp do elementów odbywa się po kluczu.
W związku z tym wybór interfejsu zależy od wymaganych operacji: jeśli potrzebna jest tylko iteracja — IEnumerable<T>, jeśli modyfikacja i liczenie — ICollection<T>, jeśli dostęp po indeksie — IList<T>, jeśli praca z kluczami — IDictionary<TKey, TValue>.