Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="3.2.0" />

 ImmutableArray<TKey, TValue>

class ImmutableArray<TKey, TValue> : IImmutableArray<TKey, TValue>, IEnumerable<TValue>, IEnumerable
public static readonly IImmutableArray<TKey, TValue> Empty

public readonly int Length

public IImmutableArray<TKey, TValue> Add(TKey key, TValue value)

public IImmutableArray<TKey, TValue> AddOrUpdate(TKey key, TValue value, bool byRef, Func<TValue, TValue, TValue> update = null)

public IEnumerator<TValue> GetEnumerator()

public TValue GetOrDefault(TKey key, bool byRef)

public IEnumerable<KeyValue<TKey, TValue>> Walk()