System.Object
Type operators
yield return
ref and out
Populating a temporary list is like downloading the whole video, whereas using yield is like streaming that video.
If you have expensive operation you can stream the data, instead of waiting for the completion