CodeShot
Midسختی 4 از ۵· در 82٪ مصاحبه‌های این حوزه پرسیده شده

تفاوت IEnumerable و IQueryable چیست؟

نشان کردن

پاسخ کوتاه

IEnumerable روی داده‌های موجود در Memory کار می‌کند؛ IQueryable Query را به منبع داده مثل SQL Server منتقل می‌کند.

پاسخ کامل

با IEnumerable، داده‌ها ابتدا کامل از منبع خوانده و سپس در Memory برنامه فیلتر می‌شوند. با IQueryable، شرط‌های LINQ به Expression Tree تبدیل و به منبع داده (مثلاً دیتابیس) منتقل می‌شوند تا فقط داده موردنیاز واکشی شود.

اشتباه رایج

❌ فراخوانی زودهنگام ToList() روی یک IQueryable قبل از اعمال فیلترها که باعث خواندن کل داده از دیتابیس می‌شود.