Stashbox by Peter Csajtai

<PackageReference Include="Stashbox" Version="3.1.0-preview-531" />

 ImmutableArray<TKey, TValue>

sealed 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(KeyValue<TKey, TValue>[] initial)

public ImmutableArray(TKey key, TValue value)

public ImmutableArray()

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

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

public IEnumerator<TValue> GetEnumerator()

public TValue GetOrDefault(TKey key)