C# Querying With LINQ Now You're Querying Writing Your First LINQ Query

Can someone explain what the fact that LINQ queries return a type of IEnumerable has to do with delayed execution?

.

1 Answer

Steven Parker
Steven Parker
173,958 Points

Queries that create an enumerable don't actually run until you iterate over the enumerable. That's due to the behind-the-scenes "magic" of the framework. So the data isn't fetched until you actually use it.

On the other hand, queries that involve an aggregate (like a sum or average) will occur right away. So will ones that get converted into a conventional storage format like an array or list.

Steven, I still don't get it. Can you try and break it down even further?

Steven Parker
Steven Parker
173,958 Points

The short version is that the framework tries to fetch the data at the last moment so it will delay if it can.

If you don't want it to delay, a common trick is to add a ".ToList()" at the end of a query chain which will cause it to run immediately.