“IEnumerable против IQueryable против IList против ICollection”
Вот сравнение четырех интерфейсов: IEnumerable, IQueryable, IList и ICollection, а также некоторых их методов.
-
IEnumerable:
- GetEnumerator(): возвращает перечислитель для перебора коллекции.
- Contains(T item): определяет, содержит ли коллекция определенный элемент.
- Count(): возвращает количество элементов в коллекции.
-
IQueryable:
- Where(Expression
>predicate): фильтрует последовательность на основе указанного условия. - Select
(селектор Expression >): проецирует каждый элемент последовательности в новую форму. - OrderBy
(Expression >keySelector): сортирует элементы последовательности в порядке возрастания.
- Where(Expression
-
IList:
- Добавить(T item): добавляет элемент в коллекцию.
- Удалить(T item): удаляет первое вхождение определенного элемента из коллекции.
- IndexOf(T item): возвращает индекс первого вхождения определенного элемента в коллекции.
-
ICollection:
- Добавить(T item): добавляет элемент в коллекцию.
- Удалить(T item): удаляет первое вхождение определенного элемента из коллекции.
- Count: возвращает количество элементов в коллекции.
Подводя итог, можно сказать, что IEnumerable — это самый простой интерфейс, который обеспечивает возможность перебора коллекции, а IQueryable позволяет запрашивать данные из источника данных с помощью выражений запроса. IList представляет собой коллекцию элементов, к которым можно получить доступ по индексу, а ICollection предоставляет общий интерфейс коллекции с методами для добавления и удаления элементов.