Чем IEnumerable vs IQueryable может быть опасен при неправильном использовании?
Что хотят услышать интервьюеры:
Неправильное использование IEnumerable vs IQueryable опасно тем, что проблема часто проявляется не сразу, а под нагрузкой или при изменении требований.
- Суть: IEnumerable работает с последовательностью в памяти, IQueryable строит expression tree для провайдера, например EF Core.
- Где встречается: обработка списков, фильтрация, группировка, построение запросов и работа с EF Core.
- Типичная ошибка: материализовать данные слишком рано, путать IEnumerable/IQueryable или игнорировать сложность операций.
- Как отвечать: начните с короткого определения, затем приведите пример, назовите ограничение и типичную ошибку.
- Ожидаемый уровень: Middle+. Умение учитывать production-ограничения, производительность и надежность.
Ответ:
var activeUsers = users.Where(u => u.IsActive).Select(u => u.Email).ToList();