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

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы