Встречается на собеседованиях • сегодня

В чем разница между 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
интервью вопросы и ответы