Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community!

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

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
227,167 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
227,167 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.