C# language and base class library concepts explained in depth, one at a time.
IEnumerable, ICollection, IList and the read-only interfaces, how to pick parameter and return types, collection expressions, and what a read-only view does not guarantee.
yield return, deferred execution, multiple enumeration, and IEnumerable vs IQueryable as the bridge to EF Core.
ImmutableList vs ImmutableArray, builders, and FrozenDictionary and FrozenSet.
Queue, Stack, LinkedList, SortedDictionary vs SortedList, and PriorityQueue (not stable, no priority update).
List<T> growth and capacity, array covariance, modifying a collection during foreach, and CollectionsMarshal.AsSpan with its risks.
Buckets, the Equals and GetHashCode contract, the mutable key bug, IEqualityComparer, and records as keys.
Stream, FileStream, MemoryStream and BufferedStream, decorators like GZipStream, leaveOpen, short reads and ReadExactly.
ReadAsync and CopyToAsync, ArrayPool<byte>, and PipeReader and PipeWriter with backpressure.
await foreach, EnumeratorCancellation, and streaming JSON from ASP.NET Core.
Thread, foreground vs background, thread injection, starvation from sync-over-async, and LongRunning.
lock and Monitor, System.Threading.Lock, Interlocked, ReaderWriterLockSlim, and why await cannot be used inside lock.
volatile and Volatile.Read, double-checked locking vs Lazy<T>, and ThreadLocal vs AsyncLocal.