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.

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
215,954 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
215,954 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.