Встречается на собеседованиях • сегодня
В чем разница между IEnumerable и IQueryable
`IEnumerable` работает с данными в памяти, выполняя запросы на стороне клиента (LINQ to Objects). Все данные загружаются в память перед обработкой.
`IQueryable` предназначен для работы с внешними источниками данных (например, базами). Запросы транслируются в язык источника (например, SQL) и выполняются на сервере, что оптимизирует производительность.
**Пример:**
```csharp
// IEnumerable: фильтрация в памяти
IEnumerable products = db.Products.ToList(); // загружаем ВСЕ данные
var filtered = products.Where(p => p.Price > 100); // фильтр на клиенте
// IQueryable: фильтрация на сервере
IQueryable query = db.Products; // запрос не выполнен
var filteredQuery = query.Where(p => p.Price > 100); // переводится в SQL и выполняется на сервере
```
**Ключевое отличие:**
- `IEnumerable` — "тянет" все данные, затем фильтрует.
- `IQueryable` — строит запрос и выполняет его на источнике.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы
