Сравнение интерфейсов IEnumerable, IQueryable, IList и ICollection: методы и различия

“IEnumerable против IQueryable против IList против ICollection”

Вот сравнение четырех интерфейсов: IEnumerable, IQueryable, IList и ICollection, а также некоторых их методов.

  1. IEnumerable:

    • GetEnumerator(): возвращает перечислитель для перебора коллекции.
    • Contains(T item): определяет, содержит ли коллекция определенный элемент.
    • Count(): возвращает количество элементов в коллекции.
  2. IQueryable:

    • Where(Expression>predicate): фильтрует последовательность на основе указанного условия.
    • Select(селектор Expression>): проецирует каждый элемент последовательности в новую форму.
    • OrderBy(Expression>keySelector): сортирует элементы последовательности в порядке возрастания.
  3. IList:

    • Добавить(T item): добавляет элемент в коллекцию.
    • Удалить(T item): удаляет первое вхождение определенного элемента из коллекции.
    • IndexOf(T item): возвращает индекс первого вхождения определенного элемента в коллекции.
  4. ICollection:

    • Добавить(T item): добавляет элемент в коллекцию.
    • Удалить(T item): удаляет первое вхождение определенного элемента из коллекции.
    • Count: возвращает количество элементов в коллекции.

Подводя итог, можно сказать, что IEnumerable — это самый простой интерфейс, который обеспечивает возможность перебора коллекции, а IQueryable позволяет запрашивать данные из источника данных с помощью выражений запроса. IList представляет собой коллекцию элементов, к которым можно получить доступ по индексу, а ICollection предоставляет общий интерфейс коллекции с методами для добавления и удаления элементов.