- MS Docs - Asynchronous programming
- C# Async/Await/Task Explained - Deep Dive
- Correcting Common Async/Await Mistakes in .NET - Brandon Minnick
- There Is No Thread (Advanced)
- Makes the caller rely on most generic type so it has the flexibility to change to list/array
- Might save memory overhead via lazy loading.
- Dealing with readonly data structure is safer, where it might avoid issues like race condition.
- Enumerables (IEnumerable, IEnumerator) | C# Programming Tutorials Beginners: 17
- Iterator Pattern – Design Patterns
Another lightweight article: https://www.jetbrains.com/help/rider/ReturnTypeCanBeEnumerable.Local.html
MS-Docs using statement (C# Reference) IDisposable and Finalizers