Welcome to the Treehouse Community
The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

okilydokily
11,107 PointsCan someone explain what the fact that LINQ queries return a type of IEnumerable has to do with delayed execution?
.
1 Answer

Steven Parker
215,954 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,861 Pointschazber
4,861 PointsSteven, I still don't get it. Can you try and break it down even further?
Steven Parker
215,954 PointsSteven Parker
215,954 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.