EvictingDictionary<TKey, TValue>.KeyCollection Class
Definition
Represents a live, order-preserving view of the keys contained in an EvictingDictionary<TKey, TValue>.
public sealed class EvictingDictionary<TKey, TValue>.KeyCollection : ICollection<TKey>, IReadOnlyCollection<TKey>, IEnumerable<TKey>, ICollection, IEnumerable
- Inheritance
-
EvictingDictionary<TKey, TValue>.KeyCollection
- Implements
-
ICollection<TKey>IReadOnlyCollection<TKey>IEnumerable<TKey>
- Inherited Members
- Extension Methods
Remarks
The collection reflects subsequent mutations to the underlying dictionary. Enumeration order follows the current EvictingDictionaryPolicy. The collection is read-only; Add(T), Clear(), and Remove(T) throw NotSupportedException.
Properties
Count
Gets the number of elements contained in the ICollection<T>.
public int Count { get; }
Property Value
- int
The number of elements contained in the ICollection<T>.
Methods
Contains(TKey)
Determines whether the ICollection<T> contains a specific value.
public bool Contains(TKey item)
Parameters
itemTKeyThe object to locate in the ICollection<T>.
Returns
- bool
true if
itemis found in the ICollection<T>; otherwise, false.
CopyTo(TKey[], int)
Copies the elements of the ICollection<T> to an Array, starting at a particular Array index.
public void CopyTo(TKey[] array, int arrayIndex)
Parameters
arrayTKey[]The one-dimensional Array that is the destination of the elements copied from ICollection<T>. The Array must have zero-based indexing.
arrayIndexintThe zero-based index in
arrayat which copying begins.
Remarks
The shared copy loop validates the argument shape before purging expired entries, so a caller error cannot trigger evictions or raise the eviction events; the purge then runs before the range check so the count validated matches the elements written.
Exceptions
- ArgumentNullException
arrayis null.- ArgumentOutOfRangeException
arrayIndexis less than 0.- ArgumentException
The number of elements in the source ICollection<T> is greater than the available space from
arrayIndexto the end of the destinationarray.
GetEnumerator()
Returns an enumerator that iterates through the collection.
public IEnumerator<TKey> GetEnumerator()
Returns
- IEnumerator<TKey>
An enumerator that can be used to iterate through the collection.
Explicit Interface Implementations
ICollection<TKey>.Add(TKey)
Adds an item to the ICollection<T>.
void ICollection<TKey>.Add(TKey item)
Parameters
itemTKeyThe object to add to the ICollection<T>.
Exceptions
- NotSupportedException
The ICollection<T> is read-only.
- NotSupportedException
Keys cannot be added directly; modify the owning dictionary instead.
ICollection<TKey>.Clear()
Removes all items from the ICollection<T>.
void ICollection<TKey>.Clear()
Exceptions
- NotSupportedException
The ICollection<T> is read-only.
- NotSupportedException
Keys cannot be cleared directly; call Clear() instead.
ICollection<TKey>.IsReadOnly
Gets a value indicating whether the ICollection<T> is read-only.
bool ICollection<TKey>.IsReadOnly { get; }
Returns
- bool
true if the ICollection<T> is read-only; otherwise, false.
ICollection<TKey>.Remove(TKey)
Removes the first occurrence of a specific object from the ICollection<T>.
bool ICollection<TKey>.Remove(TKey item)
Parameters
itemTKeyThe object to remove from the ICollection<T>.
Returns
- bool
true if
itemwas successfully removed from the ICollection<T>; otherwise, false. This method also returns false ifitemis not found in the original ICollection<T>.
Exceptions
- NotSupportedException
The ICollection<T> is read-only.
- NotSupportedException
Keys cannot be removed directly; call Remove(TKey) instead.
ICollection.CopyTo(Array, int)
Copies the elements of the ICollection to an Array, starting at a particular Array index.
void ICollection.CopyTo(Array array, int index)
Parameters
arrayArrayThe one-dimensional Array that is the destination of the elements copied from ICollection. The Array must have zero-based indexing.
indexintThe zero-based index in
arrayat which copying begins.
Remarks
The shared copy loop validates the argument shape before purging expired entries, so a caller error cannot trigger evictions or raise the eviction events; the purge then runs before the range check so the count validated matches the elements written.
Exceptions
- ArgumentNullException
arrayis null.- ArgumentOutOfRangeException
indexis less than zero.- ArgumentException
arrayis multidimensional.-or-
The number of elements in the source ICollection is greater than the available space from
indexto the end of the destinationarray.-or-
The type of the source ICollection cannot be cast automatically to the type of the destination
array.
ICollection.IsSynchronized
Gets a value indicating whether access to the ICollection is synchronized (thread safe).
bool ICollection.IsSynchronized { get; }
Returns
- bool
true if access to the ICollection is synchronized (thread safe); otherwise, false.
ICollection.SyncRoot
Gets an object that can be used to synchronize access to the ICollection.
object ICollection.SyncRoot { get; }
Returns
- object
An object that can be used to synchronize access to the ICollection.
IEnumerable.GetEnumerator()
Returns an enumerator that iterates through a collection.
IEnumerator IEnumerable.GetEnumerator()
Returns
- IEnumerator
An IEnumerator object that can be used to iterate through the collection.
Applies to
| Product | Versions |
|---|---|
| .NET | 8, 10 |