Answer
IEnumerable<T> represents an enumerable sequence, while IQueryable<T> also exposes an expression tree and query provider. • LINQ to Objects runs compiled delegates in managed code. • An IQueryable provider may translate supported expressions to SQL or another remote query language. • Calling AsEnumerable switches later operators to enumerable execution without immediately running the sequence.
💡 C# Example
IQueryable<Customer> query = db.Customers.Where(customer => customer.Active);
IEnumerable<Customer> local = query.AsEnumerable();
⚡ Quick Revision
IEnumerable executes sequence logic; IQueryable lets a provider translate query expressions.