what is the diff between ienumrable and iqrable in c#?
c#
Know the answer? Post it — somebody with the same question will find it here.
Sign in to answer this question
It is the same account you read, post and publish with — and you will come straight back to this page.
Blocked AccountPosted Oct 25, 2014, 12:47 AM
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 the both features.
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.
Extension methods supports by IEnumerable takes functional objects.
IQueryable:
IQueryable exists in System.Linq Namespace.
IQueryable can move forward only over a collection, it can't move backward and between the items.
IQueryable is best to query data from out-memory (like remote database, service) collections.
While query data from database, IQueryable execute select query on server side with all filters.
IQueryable is suitable for LINQ to SQL queries.
IQueryable supports deferred execution.
IQueryable supports custom query using CreateQuery and Execute methods.
IQueryable support lazy loading. Hence it is suitable for paging like scenarios.
Extension methods supports by IQueryable takes expression objects means expression tree.
for more detail you can take the reference of this blog. Click Here