<PackageReference Include="System.ObjectModel" Version="4.0.12" />

KeyedCollection<TKey, TItem>

public abstract class KeyedCollection<TKey, TItem> : Collection<TItem>
public IEqualityComparer<TKey> Comparer { get; }

protected IDictionary<TKey, TItem> Dictionary { get; }

public TItem this[TKey key] { get; }

protected KeyedCollection()

protected KeyedCollection(IEqualityComparer<TKey> comparer)

protected KeyedCollection(IEqualityComparer<TKey> comparer, int dictionaryCreationThreshold)

protected void ChangeItemKey(TItem item, TKey newKey)

public bool Contains(TKey key)

protected abstract TKey GetKeyForItem(TItem item)

public bool Remove(TKey key)