Skip to content

IEnumerable vs IQueryable

IEnumerable<T> runs in-memory; IQueryable<T> builds expression trees for remote providers (EF Core, OData) to translate.

.NET 3.5 LINQ era (2007)

  • IEnumerable: LINQ-to-Objects, methods take Func delegates.
  • IQueryable: LINQ providers, methods take Expression trees; operations may translate to SQL.
  • Donโ€™t call ToList() too early; keep filtering server-side with IQueryable.
  • Be cautious with client-eval; ensure provider supports operations.