I kind of grasp the whole delayed execution concept, but the following has me puzzled...
On a DataTable containing about 1000 rows, I call AsEnumerable(). I
You don't understand which methods are deferred and which are not, so you don't understand when your code defines operations vs performs operations.
These are all deferred. They define, but do not execute, an operation.
source.AsEnumerable
source.Select
source.Where
These enumerate the source and so are not deferred.
source.ToList
source.First
source.Single
foreach(var x in source)