Post navigation

IEnumerable VS IQueryable

In LINQ to query data from database and collections, we use IEnumerable and IQueryable for data manipulation. IEnumerable is inherited by Iqueryable, hence it has all the features of it and except this, it has its own features. Both have its own importance to query data and data manipulation. Let’s see both the fetures and take the advantage of both the fetures to boost your LINQ Query performance.

IEnumerable

IEnumerable exists in System.Collections Namespace.

IEnumerable can move forward only over a collection, it can’t move backward and between the items.

IEnumerable is best to query data from in-memory collections like List, Array etc.

While query data from database, IEnumerable execute select query on server side, load data in-memory on client side and then filter data.

IEnumerable is suitable for LINQ to Object and LINQ to XML queries.

IEnumerable supports deferred execution.

IEnumerable doesn’t supports custom query.

IEnumerable doesn’t support lazy loading. Hence not suitable for paging like scenarios.