Functional C# Collection of Best Practices for more functional C# 8+ Applications Do use Readonly collections Avoid incomplete states Consider Immutable collections Avoid mutable classes Avoid unnecessary casting Avoid projections over entire collections Robustness principle License