IEnumerable
IQueryable
IEnumerable exists in System.Collections Namespace.
IQueryable exists in System.Linq Namespace.
IEnumerable is the best way to query data from in-memory collections like List, Array etc.
IQueryable is best the best way to query data from out-memory (like databases) collections.
While Query data from database using select, IEnumerable execute select query in server and loads data in in-memory on client and it applies filtering of data.
IQueryable executes select query in the server with all filters.
IEnumerable is suitable for LINQ to Object and LINQ to XML queries.
IQueryable is suitable for LINQ to SQL queries.
IEnumerable supports deferred execution.
IQueryable supports deferred execution.
IEnumerable doesn’t support lazy loading.
IQueryable support lazy loading. Hence it is suitable for paging like scenarios.