Встречается на 19% собеседований по C#
В чём разница между IEnumerable и IQueryable
IEnumerable и IQueryable — интерфейсы для работы с коллекциями, но с ключевыми отличиями:
- IEnumerable:
- Работает в памяти (LINQ to Objects).
- Загружает все данные клиента перед фильтрацией.
- Подходит для локальных коллекций (List, Array).
- IQueryable:
- Работает с удалёнными источниками (LINQ to SQL, Entity Framework).
- Строит выражение запроса и выполняет его на сервере (оптимизация).
- Подходит для БД или других провайдеров запросов.
Пример:
csharp
// IEnumerable: фильтрация на клиенте
IEnumerable<User> users = db.Users.AsEnumerable().Where(u => u.Age > 18);
// IQueryable: фильтрация на сервере (SQL WHERE)
IQueryable<User> users = db.Users.Where(u => u.Age > 18);Вывод:
Используйте IQueryable для работы с БД (экономия трафика), IEnumerable — для операций в памяти.
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы