Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="2.9.0-preview-521" />

 ImmutableArray<TKey, TValue>

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

public TValue this[int i] { get; }

public TValue Last { get; }

public int Length { get; }

public KeyValue<TKey, TValue>[] Repository { get; }

public ImmutableArray()

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

public ImmutableArray<TKey, TValue> AddOrUpdate(TKey key, TValue value, bool allowUpdate = true)

public IEnumerator<TValue> GetEnumerator()

public TValue GetOrDefault(TKey key)