Stashbox by Peter Csajtai

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

 ImmutableArray<TKey, TValue>

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

public int Length

public KeyValue<TKey, TValue>[] Repository

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 byRef, bool allowUpdate = true, Action<TValue, TValue> updateAction = null)

public IEnumerator<TValue> GetEnumerator()

public TValue GetOrDefault(TKey key, bool byRef)