Table of Contents

EvictingDictionary<TKey, TValue>.KeyCollection Class

Definition

Namespace
Bodu.Collections.Generic
Assembly
Bodu.Collections.dll
Package
Bodu.Collections 1.0.0
Source
EvictingDictionary{T,T}.DictionaryEnumerator.cs

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
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

item TKey

The object to locate in the ICollection<T>.

Returns

bool

true if item is 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

array TKey[]

The one-dimensional Array that is the destination of the elements copied from ICollection<T>. The Array must have zero-based indexing.

arrayIndex int

The zero-based index in array at 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

array is null.

ArgumentOutOfRangeException

arrayIndex is less than 0.

ArgumentException

The number of elements in the source ICollection<T> is greater than the available space from arrayIndex to the end of the destination array.

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

item TKey

The 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

item TKey

The object to remove from the ICollection<T>.

Returns

bool

true if item was successfully removed from the ICollection<T>; otherwise, false. This method also returns false if item is 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

array Array

The one-dimensional Array that is the destination of the elements copied from ICollection. The Array must have zero-based indexing.

index int

The zero-based index in array at 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

array is null.

ArgumentOutOfRangeException

index is less than zero.

ArgumentException

array is multidimensional.

-or-

The number of elements in the source ICollection is greater than the available space from index to the end of the destination array.

-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

ProductVersions
.NET8, 10