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