http://www.fullstackprep.dev/Articles/webd/csharp/deferred-and-immediate-execution-in-linq