If a data reader releases data as it receives it, then using enumerables should allow that data to be immediately sent back to callers from a data access function.
If I use List based methods then callers would be waiting for all of the data to be received since the entire reader must be “enumerated” to be converted to a list.
Is this understanding correct and as a result is it generally faster to avoid using lists for returning collections when writing data access code using data readers?
I am implying probably using a yield return in the data access function using the reader vs. initializing a list of objects and adding objects to a list which is then returned.
That’s correct. Not only that it’s immediate, because of lazy evaluation, but it also prevents unnecessary memory allocation, since you are only dealing with one row at a time.
Large amounts of data are best being left in the database.