Sobes.tech
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>.