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! While you're at it, check out some resources Treehouse students have shared here.
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 trialokilydokily
12,105 PointsCan someone explain what the fact that LINQ queries return a type of IEnumerable has to do with delayed execution?
.
1 Answer
Steven Parker
231,269 PointsQueries 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.
chazber
4,873 Pointschazber
4,873 PointsSteven, I still don't get it. Can you try and break it down even further?
Steven Parker
231,269 PointsSteven Parker
231,269 PointsThe 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.