<PackageReference Include="System.Collections.Immutable" Version="11.0.0-preview.5.26302.115" />

System.Collections.Frozen.FrozenDictionary<TKey, TValue>

public abstract class FrozenDictionary<TKey, TValue> : IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable, IReadOnlyDictionary<TKey, TValue>, IReadOnlyCollection<KeyValuePair<TKey, TValue>>, IDictionary, ICollection
Provides an immutable, read-only dictionary optimized for fast lookup and enumeration.
namespace System.Collections.Frozen { public abstract class FrozenDictionary<TKey, [System.Runtime.CompilerServices.Nullable(2)] TValue> : IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable, IReadOnlyDictionary<TKey, TValue>, IReadOnlyCollection<KeyValuePair<TKey, TValue>>, IDictionary, ICollection { [return: System.Runtime.CompilerServices.IsReadOnly] internal delegate ref TValue AlternateLookupDelegate<TAlternateKey> (FrozenDictionary<TKey, TValue> dictionary, TAlternateKey key); public struct Enumerator : IEnumerator<KeyValuePair<TKey, TValue>>, IDisposable, IEnumerator { public KeyValuePair<TKey, TValue> Current { get; } public bool MoveNext(); } public static FrozenDictionary<TKey, TValue> Empty { get; } public IEqualityComparer<TKey> Comparer { get; } public ImmutableArray<TKey> Keys { get; } public ImmutableArray<TValue> Values { get; } public int Count { get; } [System.Runtime.CompilerServices.Nullable(2)] object IDictionary.this[object key] { get; set; } [System.Runtime.CompilerServices.IsReadOnly] public ref TValue this[TKey key] { [return: System.Runtime.CompilerServices.IsReadOnly] get; } TValue IDictionary<TKey, TValue>.this[TKey key] { get; set; } TValue IReadOnlyDictionary<TKey, TValue>.this[TKey key] { get; } public void CopyTo(KeyValuePair<TKey, TValue>[] destination, int destinationIndex); public void CopyTo(Span<KeyValuePair<TKey, TValue>> destination); public ref TValue GetValueRefOrNullRef(TKey key); public bool ContainsKey(TKey key); public bool TryGetValue(TKey key, out TValue value); public Enumerator GetEnumerator(); } }