Linq, what is difference in returning data in var, list, IEnumerable and IQueryable?
I am new to Linq please guide me on some basic things.
In read some articles on Linq. Some authers fill data in v开发者_开发知识库ar from Linq query, some fills list of custom type objects and some fills data in IEnumerable and some do it in IQuryable. I could not get what is difference in these 4 and which one should be used in which situation.
I want to use Linq to SQL. What should I use?
Well, you can never declare that a method returns var
- it's only valid for local variables. It basically means "compiler, please infer the static type of this variable based on the expression on the right hand side of the assignment operator".
Usually a LINQ to Objects query will return an IEnumerable<T>
if it's returning a sequence of some kind, or just a single instance for things like First()
.
A LINQ to SQL or EF query will use IQueryable<T>
if they want further query options to be able to build on the existing query, with the added bits being analyzed as part of the SQL building process. Alternatively, using IEnumerable<T>
means any further processing is carried out client-side.
Rather than focusing on what return type to use, I suggest you read up on the core concepts of LINQ (and the language enhancements themselves, like var
) - that way you'll get a better feel for why these options exist, and what their different use cases are.
精彩评论