This is from the team that brought you ‘Framework Design Guidelines’ led by Krzysztof Cwalina, an individual we are not shy to recognize as an amazing mind. Look for this content (as shared here from their internal work) in the next of the book For example :
defer execution of query operator implementations. The expected behavior of most of the Query Pattern members is that they simply construct a new object which, upon enumeration, produces the elements of the set which match the query. The evaluation time is, then, at enumeration.