ConcurrentDictionary<TKey, TValue> Class
Represents a thread-safe collection of key/value pairs that can be accessed by multiple threads concurrently.
Assembly: mscorlib (in mscorlib.dll)
generic<typename TKey, typename TValue> [SerializableAttribute] [ComVisibleAttribute(false)] [HostProtectionAttribute(SecurityAction::LinkDemand, Synchronization = true, ExternalThreading = true)] public ref class ConcurrentDictionary : IDictionary<TKey, TValue>, ICollection<KeyValuePair<TKey, TValue>>, IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable, IDictionary, ICollection, IReadOnlyDictionary<TKey, TValue>, IReadOnlyCollection<KeyValuePair<TKey, TValue>>
Type Parameters
- TKey
The type of the keys in the dictionary.
- TValue
The type of the values in the dictionary.
| Name | Description | |
|---|---|---|
![]() | ConcurrentDictionary<TKey, TValue>() | Initializes a new instance of the ConcurrentDictionary<TKey, TValue> class that is empty, has the default concurrency level, has the default initial capacity, and uses the default comparer for the key type. |
![]() | ConcurrentDictionary<TKey, TValue>(IEnumerable<KeyValuePair<TKey, TValue>>^) | Initializes a new instance of the ConcurrentDictionary<TKey, TValue> class that contains elements copied from the specified IEnumerable<T>, has the default concurrency level, has the default initial capacity, and uses the default comparer for the key type. |
![]() | ConcurrentDictionary<TKey, TValue>(IEnumerable<KeyValuePair<TKey, TValue>>^, IEqualityComparer<TKey>^) | Initializes a new instance of the ConcurrentDictionary<TKey, TValue> class that contains elements copied from the specified IEnumerable has the default concurrency level, has the default initial capacity, and uses the specified IEqualityComparer<T>. |
![]() | ConcurrentDictionary<TKey, TValue>(IEqualityComparer<TKey>^) | Initializes a new instance of the ConcurrentDictionary<TKey, TValue> class that is empty, has the default concurrency level and capacity, and uses the specified System.Collections.Generic::IEqualityComparer<T>. |
![]() | ConcurrentDictionary<TKey, TValue>(Int32, IEnumerable<KeyValuePair<TKey, TValue>>^, IEqualityComparer<TKey>^) | Initializes a new instance of the ConcurrentDictionary<TKey, TValue> class that contains elements copied from the specified IEnumerable, and uses the specified System.Collections.Generic::IEqualityComparer<T>. |
![]() | ConcurrentDictionary<TKey, TValue>(Int32, Int32) | Initializes a new instance of the ConcurrentDictionary<TKey, TValue> class that is empty, has the specified concurrency level and capacity, and uses the default comparer for the key type. |
![]() | ConcurrentDictionary<TKey, TValue>(Int32, Int32, IEqualityComparer<TKey>^) | Initializes a new instance of the System.Collections.Concurrent::ConcurrentDictionary<TKey, TValue> class that is empty, has the specified concurrency level, has the specified initial capacity, and uses the specified System.Collections.Generic::IEqualityComparer<T>. |
| Name | Description | |
|---|---|---|
![]() | Count | Gets the number of key/value pairs contained in the System.Collections.Concurrent::ConcurrentDictionary<TKey, TValue>. |
![]() | IsEmpty | Gets a value that indicates whether the System.Collections.Concurrent::ConcurrentDictionary<TKey, TValue> is empty. |
![]() | Item[TKey] | Gets or sets the value associated with the specified key. |
![]() | Keys | Gets a collection containing the keys in the System.Collections.Generic::Dictionary<TKey, TValue>. |
![]() | Values | Gets a collection that contains the values in the System.Collections.Generic::Dictionary<TKey, TValue>. |
| Name | Description | |
|---|---|---|
![]() | AddOrUpdate(TKey, TValue, Func<TKey, TValue, TValue>^) | Adds a key/value pair to the ConcurrentDictionary<TKey, TValue> if the key does not already exist, or updates a key/value pair in the ConcurrentDictionary<TKey, TValue> by using the specified function if the key already exists. |
![]() | AddOrUpdate(TKey, Func<TKey, TValue>^, Func<TKey, TValue, TValue>^) | Uses the specified functions to add a key/value pair to the ConcurrentDictionary<TKey, TValue> if the key does not already exist, or to update a key/value pair in the ConcurrentDictionary<TKey, TValue> if the key already exists. |
![]() | Clear() | Removes all keys and values from the ConcurrentDictionary<TKey, TValue>. |
![]() | ContainsKey(TKey) | Determines whether the ConcurrentDictionary<TKey, TValue> contains the specified key. |
![]() | Equals(Object^) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetEnumerator() | Returns an enumerator that iterates through the ConcurrentDictionary<TKey, TValue>. |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetOrAdd(TKey, TValue) | Adds a key/value pair to the ConcurrentDictionary<TKey, TValue> if the key does not already exist. |
![]() | GetOrAdd(TKey, Func<TKey, TValue>^) | Adds a key/value pair to the ConcurrentDictionary<TKey, TValue> by using the specified function, if the key does not already exist. |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | ToArray() | Copies the key and value pairs stored in the System.Collections.Concurrent::ConcurrentDictionary<TKey, TValue> to a new array. |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
![]() | TryAdd(TKey, TValue) | Attempts to add the specified key and value to the System.Collections.Concurrent::ConcurrentDictionary<TKey, TValue>. |
![]() | TryGetValue(TKey, TValue%) | Attempts to get the value associated with the specified key from the System.Collections.Concurrent::ConcurrentDictionary<TKey, TValue>. |
![]() | TryRemove(TKey, TValue%) | Attempts to remove and return the value that has the specified key from the System.Collections.Concurrent::ConcurrentDictionary<TKey, TValue>. |
![]() | TryUpdate(TKey, TValue, TValue) | Compares the existing value for the specified key with a specified value, and if they are equal, updates the key with a third value. |
| Name | Description | |
|---|---|---|
![]() | Aggregate<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, KeyValuePair<TKey, TValue>, KeyValuePair<TKey, TValue>>^) | Overloaded. Applies an accumulator function over a sequence.(Defined by Enumerable.) |
![]() | Aggregate<KeyValuePair<TKey, TValue>, TAccumulate>(TAccumulate, Func<TAccumulate, KeyValuePair<TKey, TValue>, TAccumulate>^) | Overloaded. Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value.(Defined by Enumerable.) |
![]() | Aggregate<KeyValuePair<TKey, TValue>, TAccumulate, TResult>(TAccumulate, Func<TAccumulate, KeyValuePair<TKey, TValue>, TAccumulate>^, Func<TAccumulate, TResult>^) | Overloaded. Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value.(Defined by Enumerable.) |
![]() | All<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Determines whether all elements of a sequence satisfy a condition.(Defined by Enumerable.) |
![]() | Any<KeyValuePair<TKey, TValue>>() | Overloaded. Determines whether a sequence contains any elements.(Defined by Enumerable.) |
![]() | Any<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Overloaded. Determines whether any element of a sequence satisfies a condition.(Defined by Enumerable.) |
![]() | AsEnumerable<KeyValuePair<TKey, TValue>>() | Returns the input typed as IEnumerable<T>.(Defined by Enumerable.) |
![]() | AsParallel() | Overloaded. Enables parallelization of a query.(Defined by ParallelEnumerable.) |
![]() | AsParallel<KeyValuePair<TKey, TValue>>() | Overloaded. Enables parallelization of a query.(Defined by ParallelEnumerable.) |
![]() | AsQueryable() | Overloaded. Converts an IEnumerable to an IQueryable.(Defined by Queryable.) |
![]() | AsQueryable<KeyValuePair<TKey, TValue>>() | Overloaded. Converts a generic IEnumerable<T> to a generic IQueryable<T>.(Defined by Queryable.) |
![]() | Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Decimal>^) | Overloaded. Computes the average of a sequence of Decimal values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Double>^) | Overloaded. Computes the average of a sequence of Double values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32>^) | Overloaded. Computes the average of a sequence of Int32 values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int64>^) | Overloaded. Computes the average of a sequence of Int64 values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Decimal>>^) | Overloaded. Computes the average of a sequence of nullable Decimal values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Double>>^) | Overloaded. Computes the average of a sequence of nullable Double values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int32>>^) | Overloaded. Computes the average of a sequence of nullable Int32 values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int64>>^) | Overloaded. Computes the average of a sequence of nullable Int64 values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Single>>^) | Overloaded. Computes the average of a sequence of nullable Single values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Average<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Single>^) | Overloaded. Computes the average of a sequence of Single values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Cast<TResult>() | Casts the elements of an IEnumerable to the specified type.(Defined by Enumerable.) |
![]() | Concat<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>^) | Concatenates two sequences.(Defined by Enumerable.) |
![]() | Contains<KeyValuePair<TKey, TValue>>(KeyValuePair<TKey, TValue>) | Overloaded. Determines whether a sequence contains a specified element by using the default equality comparer.(Defined by Enumerable.) |
![]() | Contains<KeyValuePair<TKey, TValue>>(KeyValuePair<TKey, TValue>, IEqualityComparer<KeyValuePair<TKey, TValue>>^) | Overloaded. Determines whether a sequence contains a specified element by using a specified IEqualityComparer<T>.(Defined by Enumerable.) |
![]() | Count<KeyValuePair<TKey, TValue>>() | Overloaded. Returns the number of elements in a sequence.(Defined by Enumerable.) |
![]() | Count<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Overloaded. Returns a number that represents how many elements in the specified sequence satisfy a condition.(Defined by Enumerable.) |
![]() | DefaultIfEmpty<KeyValuePair<TKey, TValue>>() | Overloaded. Returns the elements of the specified sequence or the type parameter's default value in a singleton collection if the sequence is empty.(Defined by Enumerable.) |
![]() | DefaultIfEmpty<KeyValuePair<TKey, TValue>>(KeyValuePair<TKey, TValue>) | Overloaded. Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty.(Defined by Enumerable.) |
![]() | Distinct<KeyValuePair<TKey, TValue>>() | Overloaded. Returns distinct elements from a sequence by using the default equality comparer to compare values.(Defined by Enumerable.) |
![]() | Distinct<KeyValuePair<TKey, TValue>>(IEqualityComparer<KeyValuePair<TKey, TValue>>^) | Overloaded. Returns distinct elements from a sequence by using a specified IEqualityComparer<T> to compare values.(Defined by Enumerable.) |
![]() | ElementAt<KeyValuePair<TKey, TValue>>(Int32) | Returns the element at a specified index in a sequence.(Defined by Enumerable.) |
![]() | ElementAtOrDefault<KeyValuePair<TKey, TValue>>(Int32) | Returns the element at a specified index in a sequence or a default value if the index is out of range.(Defined by Enumerable.) |
![]() | Except<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>^) | Overloaded. Produces the set difference of two sequences by using the default equality comparer to compare values.(Defined by Enumerable.) |
![]() | Except<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>^, IEqualityComparer<KeyValuePair<TKey, TValue>>^) | Overloaded. Produces the set difference of two sequences by using the specified IEqualityComparer<T> to compare values.(Defined by Enumerable.) |
![]() | First<KeyValuePair<TKey, TValue>>() | Overloaded. Returns the first element of a sequence.(Defined by Enumerable.) |
![]() | First<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Overloaded. Returns the first element in a sequence that satisfies a specified condition.(Defined by Enumerable.) |
![]() | FirstOrDefault<KeyValuePair<TKey, TValue>>() | Overloaded. Returns the first element of a sequence, or a default value if the sequence contains no elements.(Defined by Enumerable.) |
![]() | FirstOrDefault<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Overloaded. Returns the first element of the sequence that satisfies a condition or a default value if no such element is found.(Defined by Enumerable.) |
![]() | GroupBy<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>^) | Overloaded. Groups the elements of a sequence according to a specified key selector function.(Defined by Enumerable.) |
![]() | GroupBy<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>^, IEqualityComparer<TKey>^) | Overloaded. Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer.(Defined by Enumerable.) |
![]() | GroupBy<KeyValuePair<TKey, TValue>, TKey, TElement>(Func<KeyValuePair<TKey, TValue>, TKey>^, Func<KeyValuePair<TKey, TValue>, TElement>^) | Overloaded. Groups the elements of a sequence according to a specified key selector function and projects the elements for each group by using a specified function.(Defined by Enumerable.) |
![]() | GroupBy<KeyValuePair<TKey, TValue>, TKey, TElement>(Func<KeyValuePair<TKey, TValue>, TKey>^, Func<KeyValuePair<TKey, TValue>, TElement>^, IEqualityComparer<TKey>^) | Overloaded. Groups the elements of a sequence according to a key selector function. The keys are compared by using a comparer and each group's elements are projected by using a specified function.(Defined by Enumerable.) |
![]() | GroupBy<KeyValuePair<TKey, TValue>, TKey, TResult>(Func<KeyValuePair<TKey, TValue>, TKey>^, Func<TKey, IEnumerable<KeyValuePair<TKey, TValue>>^, TResult>^) | Overloaded. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key.(Defined by Enumerable.) |
![]() | GroupBy<KeyValuePair<TKey, TValue>, TKey, TResult>(Func<KeyValuePair<TKey, TValue>, TKey>^, Func<TKey, IEnumerable<KeyValuePair<TKey, TValue>>^, TResult>^, IEqualityComparer<TKey>^) | Overloaded. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The keys are compared by using a specified comparer.(Defined by Enumerable.) |
![]() | GroupBy<KeyValuePair<TKey, TValue>, TKey, TElement, TResult>(Func<KeyValuePair<TKey, TValue>, TKey>^, Func<KeyValuePair<TKey, TValue>, TElement>^, Func<TKey, IEnumerable<TElement>^, TResult>^) | Overloaded. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The elements of each group are projected by using a specified function.(Defined by Enumerable.) |
![]() | GroupBy<KeyValuePair<TKey, TValue>, TKey, TElement, TResult>(Func<KeyValuePair<TKey, TValue>, TKey>^, Func<KeyValuePair<TKey, TValue>, TElement>^, Func<TKey, IEnumerable<TElement>^, TResult>^, IEqualityComparer<TKey>^) | Overloaded. Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Key values are compared by using a specified comparer, and the elements of each group are projected by using a specified function.(Defined by Enumerable.) |
![]() | GroupJoin<KeyValuePair<TKey, TValue>, TInner, TKey, TResult>(IEnumerable<TInner>^, Func<KeyValuePair<TKey, TValue>, TKey>^, Func<TInner, TKey>^, Func<KeyValuePair<TKey, TValue>, IEnumerable<TInner>^, TResult>^) | Overloaded. Correlates the elements of two sequences based on equality of keys and groups the results. The default equality comparer is used to compare keys.(Defined by Enumerable.) |
![]() | GroupJoin<KeyValuePair<TKey, TValue>, TInner, TKey, TResult>(IEnumerable<TInner>^, Func<KeyValuePair<TKey, TValue>, TKey>^, Func<TInner, TKey>^, Func<KeyValuePair<TKey, TValue>, IEnumerable<TInner>^, TResult>^, IEqualityComparer<TKey>^) | Overloaded. Correlates the elements of two sequences based on key equality and groups the results. A specified IEqualityComparer<T> is used to compare keys.(Defined by Enumerable.) |
![]() | Intersect<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>^) | Overloaded. Produces the set intersection of two sequences by using the default equality comparer to compare values.(Defined by Enumerable.) |
![]() | Intersect<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>^, IEqualityComparer<KeyValuePair<TKey, TValue>>^) | Overloaded. Produces the set intersection of two sequences by using the specified IEqualityComparer<T> to compare values.(Defined by Enumerable.) |
![]() | Join<KeyValuePair<TKey, TValue>, TInner, TKey, TResult>(IEnumerable<TInner>^, Func<KeyValuePair<TKey, TValue>, TKey>^, Func<TInner, TKey>^, Func<KeyValuePair<TKey, TValue>, TInner, TResult>^) | Overloaded. Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys.(Defined by Enumerable.) |
![]() | Join<KeyValuePair<TKey, TValue>, TInner, TKey, TResult>(IEnumerable<TInner>^, Func<KeyValuePair<TKey, TValue>, TKey>^, Func<TInner, TKey>^, Func<KeyValuePair<TKey, TValue>, TInner, TResult>^, IEqualityComparer<TKey>^) | Overloaded. Correlates the elements of two sequences based on matching keys. A specified IEqualityComparer<T> is used to compare keys.(Defined by Enumerable.) |
![]() | Last<KeyValuePair<TKey, TValue>>() | Overloaded. Returns the last element of a sequence.(Defined by Enumerable.) |
![]() | Last<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Overloaded. Returns the last element of a sequence that satisfies a specified condition.(Defined by Enumerable.) |
![]() | LastOrDefault<KeyValuePair<TKey, TValue>>() | Overloaded. Returns the last element of a sequence, or a default value if the sequence contains no elements.(Defined by Enumerable.) |
![]() | LastOrDefault<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Overloaded. Returns the last element of a sequence that satisfies a condition or a default value if no such element is found.(Defined by Enumerable.) |
![]() | LongCount<KeyValuePair<TKey, TValue>>() | Overloaded. Returns an Int64 that represents the total number of elements in a sequence.(Defined by Enumerable.) |
![]() | LongCount<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Overloaded. Returns an Int64 that represents how many elements in a sequence satisfy a condition.(Defined by Enumerable.) |
![]() | Max<KeyValuePair<TKey, TValue>>() | Overloaded. Returns the maximum value in a generic sequence.(Defined by Enumerable.) |
![]() | Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Decimal>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Decimal value.(Defined by Enumerable.) |
![]() | Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Double>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Double value.(Defined by Enumerable.) |
![]() | Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Int32 value.(Defined by Enumerable.) |
![]() | Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int64>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Int64 value.(Defined by Enumerable.) |
![]() | Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Decimal>>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Decimal value.(Defined by Enumerable.) |
![]() | Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Double>>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Double value.(Defined by Enumerable.) |
![]() | Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int32>>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Int32 value.(Defined by Enumerable.) |
![]() | Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int64>>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Int64 value.(Defined by Enumerable.) |
![]() | Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Single>>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the maximum nullable Single value.(Defined by Enumerable.) |
![]() | Max<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Single>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the maximum Single value.(Defined by Enumerable.) |
![]() | Max<KeyValuePair<TKey, TValue>, TResult>(Func<KeyValuePair<TKey, TValue>, TResult>^) | Overloaded. Invokes a transform function on each element of a generic sequence and returns the maximum resulting value.(Defined by Enumerable.) |
![]() | Min<KeyValuePair<TKey, TValue>>() | Overloaded. Returns the minimum value in a generic sequence.(Defined by Enumerable.) |
![]() | Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Decimal>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Decimal value.(Defined by Enumerable.) |
![]() | Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Double>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Double value.(Defined by Enumerable.) |
![]() | Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Int32 value.(Defined by Enumerable.) |
![]() | Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int64>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Int64 value.(Defined by Enumerable.) |
![]() | Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Decimal>>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Decimal value.(Defined by Enumerable.) |
![]() | Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Double>>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Double value.(Defined by Enumerable.) |
![]() | Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int32>>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Int32 value.(Defined by Enumerable.) |
![]() | Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int64>>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Int64 value.(Defined by Enumerable.) |
![]() | Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Single>>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the minimum nullable Single value.(Defined by Enumerable.) |
![]() | Min<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Single>^) | Overloaded. Invokes a transform function on each element of a sequence and returns the minimum Single value.(Defined by Enumerable.) |
![]() | Min<KeyValuePair<TKey, TValue>, TResult>(Func<KeyValuePair<TKey, TValue>, TResult>^) | Overloaded. Invokes a transform function on each element of a generic sequence and returns the minimum resulting value.(Defined by Enumerable.) |
![]() | OfType<TResult>() | Filters the elements of an IEnumerable based on a specified type.(Defined by Enumerable.) |
![]() | OrderBy<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>^) | Overloaded. Sorts the elements of a sequence in ascending order according to a key.(Defined by Enumerable.) |
![]() | OrderBy<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>^, IComparer<TKey>^) | Overloaded. Sorts the elements of a sequence in ascending order by using a specified comparer.(Defined by Enumerable.) |
![]() | OrderByDescending<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>^) | Overloaded. Sorts the elements of a sequence in descending order according to a key.(Defined by Enumerable.) |
![]() | OrderByDescending<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>^, IComparer<TKey>^) | Overloaded. Sorts the elements of a sequence in descending order by using a specified comparer.(Defined by Enumerable.) |
![]() | Reverse<KeyValuePair<TKey, TValue>>() | Inverts the order of the elements in a sequence.(Defined by Enumerable.) |
![]() | Select<KeyValuePair<TKey, TValue>, TResult>(Func<KeyValuePair<TKey, TValue>, TResult>^) | Overloaded. Projects each element of a sequence into a new form.(Defined by Enumerable.) |
![]() | Select<KeyValuePair<TKey, TValue>, TResult>(Func<KeyValuePair<TKey, TValue>, Int32, TResult>^) | Overloaded. Projects each element of a sequence into a new form by incorporating the element's index.(Defined by Enumerable.) |
![]() | SelectMany<KeyValuePair<TKey, TValue>, TResult>(Func<KeyValuePair<TKey, TValue>, IEnumerable<TResult>^>^) | Overloaded. Projects each element of a sequence to an IEnumerable<T> and flattens the resulting sequences into one sequence.(Defined by Enumerable.) |
![]() | SelectMany<KeyValuePair<TKey, TValue>, TResult>(Func<KeyValuePair<TKey, TValue>, Int32, IEnumerable<TResult>^>^) | Overloaded. Projects each element of a sequence to an IEnumerable<T>, and flattens the resulting sequences into one sequence. The index of each source element is used in the projected form of that element.(Defined by Enumerable.) |
![]() | SelectMany<KeyValuePair<TKey, TValue>, TCollection, TResult>(Func<KeyValuePair<TKey, TValue>, IEnumerable<TCollection>^>^, Func<KeyValuePair<TKey, TValue>, TCollection, TResult>^) | Overloaded. Projects each element of a sequence to an IEnumerable<T>, flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein.(Defined by Enumerable.) |
![]() | SelectMany<KeyValuePair<TKey, TValue>, TCollection, TResult>(Func<KeyValuePair<TKey, TValue>, Int32, IEnumerable<TCollection>^>^, Func<KeyValuePair<TKey, TValue>, TCollection, TResult>^) | Overloaded. Projects each element of a sequence to an IEnumerable<T>, flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein. The index of each source element is used in the intermediate projected form of that element.(Defined by Enumerable.) |
![]() | SequenceEqual<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>^) | Overloaded. Determines whether two sequences are equal by comparing the elements by using the default equality comparer for their type.(Defined by Enumerable.) |
![]() | SequenceEqual<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>^, IEqualityComparer<KeyValuePair<TKey, TValue>>^) | Overloaded. Determines whether two sequences are equal by comparing their elements by using a specified IEqualityComparer<T>.(Defined by Enumerable.) |
![]() | Single<KeyValuePair<TKey, TValue>>() | Overloaded. Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence.(Defined by Enumerable.) |
![]() | Single<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Overloaded. Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists.(Defined by Enumerable.) |
![]() | SingleOrDefault<KeyValuePair<TKey, TValue>>() | Overloaded. Returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence.(Defined by Enumerable.) |
![]() | SingleOrDefault<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Overloaded. Returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition.(Defined by Enumerable.) |
![]() | Skip<KeyValuePair<TKey, TValue>>(Int32) | Bypasses a specified number of elements in a sequence and then returns the remaining elements.(Defined by Enumerable.) |
![]() | SkipWhile<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Overloaded. Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.(Defined by Enumerable.) |
![]() | SkipWhile<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32, Boolean>^) | Overloaded. Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. The element's index is used in the logic of the predicate function.(Defined by Enumerable.) |
![]() | Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Decimal>^) | Overloaded. Computes the sum of the sequence of Decimal values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Double>^) | Overloaded. Computes the sum of the sequence of Double values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32>^) | Overloaded. Computes the sum of the sequence of Int32 values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int64>^) | Overloaded. Computes the sum of the sequence of Int64 values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Decimal>>^) | Overloaded. Computes the sum of the sequence of nullable Decimal values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Double>>^) | Overloaded. Computes the sum of the sequence of nullable Double values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int32>>^) | Overloaded. Computes the sum of the sequence of nullable Int32 values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Int64>>^) | Overloaded. Computes the sum of the sequence of nullable Int64 values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Nullable<Single>>^) | Overloaded. Computes the sum of the sequence of nullable Single values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Sum<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Single>^) | Overloaded. Computes the sum of the sequence of Single values that are obtained by invoking a transform function on each element of the input sequence.(Defined by Enumerable.) |
![]() | Take<KeyValuePair<TKey, TValue>>(Int32) | Returns a specified number of contiguous elements from the start of a sequence.(Defined by Enumerable.) |
![]() | TakeWhile<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Overloaded. Returns elements from a sequence as long as a specified condition is true.(Defined by Enumerable.) |
![]() | TakeWhile<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32, Boolean>^) | Overloaded. Returns elements from a sequence as long as a specified condition is true. The element's index is used in the logic of the predicate function.(Defined by Enumerable.) |
![]() | ToArray<KeyValuePair<TKey, TValue>>() | Creates an array from a IEnumerable<T>.(Defined by Enumerable.) |
![]() | ToDictionary<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>^) | Overloaded. Creates a Dictionary<TKey, TValue> from an IEnumerable<T> according to a specified key selector function.(Defined by Enumerable.) |
![]() | ToDictionary<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>^, IEqualityComparer<TKey>^) | Overloaded. Creates a Dictionary<TKey, TValue> from an IEnumerable<T> according to a specified key selector function and key comparer.(Defined by Enumerable.) |
![]() | ToDictionary<KeyValuePair<TKey, TValue>, TKey, TElement>(Func<KeyValuePair<TKey, TValue>, TKey>^, Func<KeyValuePair<TKey, TValue>, TElement>^) | Overloaded. Creates a Dictionary<TKey, TValue> from an IEnumerable<T> according to specified key selector and element selector functions.(Defined by Enumerable.) |
![]() | ToDictionary<KeyValuePair<TKey, TValue>, TKey, TElement>(Func<KeyValuePair<TKey, TValue>, TKey>^, Func<KeyValuePair<TKey, TValue>, TElement>^, IEqualityComparer<TKey>^) | Overloaded. Creates a Dictionary<TKey, TValue> from an IEnumerable<T> according to a specified key selector function, a comparer, and an element selector function.(Defined by Enumerable.) |
![]() | ToList<KeyValuePair<TKey, TValue>>() | Creates a List<T> from an IEnumerable<T>.(Defined by Enumerable.) |
![]() | ToLookup<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>^) | Overloaded. Creates a Lookup<TKey, TElement> from an IEnumerable<T> according to a specified key selector function.(Defined by Enumerable.) |
![]() | ToLookup<KeyValuePair<TKey, TValue>, TKey>(Func<KeyValuePair<TKey, TValue>, TKey>^, IEqualityComparer<TKey>^) | Overloaded. Creates a Lookup<TKey, TElement> from an IEnumerable<T> according to a specified key selector function and key comparer.(Defined by Enumerable.) |
![]() | ToLookup<KeyValuePair<TKey, TValue>, TKey, TElement>(Func<KeyValuePair<TKey, TValue>, TKey>^, Func<KeyValuePair<TKey, TValue>, TElement>^) | Overloaded. Creates a Lookup<TKey, TElement> from an IEnumerable<T> according to specified key selector and element selector functions.(Defined by Enumerable.) |
![]() | ToLookup<KeyValuePair<TKey, TValue>, TKey, TElement>(Func<KeyValuePair<TKey, TValue>, TKey>^, Func<KeyValuePair<TKey, TValue>, TElement>^, IEqualityComparer<TKey>^) | Overloaded. Creates a Lookup<TKey, TElement> from an IEnumerable<T> according to a specified key selector function, a comparer and an element selector function.(Defined by Enumerable.) |
![]() | Union<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>^) | Overloaded. Produces the set union of two sequences by using the default equality comparer.(Defined by Enumerable.) |
![]() | Union<KeyValuePair<TKey, TValue>>(IEnumerable<KeyValuePair<TKey, TValue>>^, IEqualityComparer<KeyValuePair<TKey, TValue>>^) | Overloaded. Produces the set union of two sequences by using a specified IEqualityComparer<T>.(Defined by Enumerable.) |
![]() | Where<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Boolean>^) | Overloaded. Filters a sequence of values based on a predicate.(Defined by Enumerable.) |
![]() | Where<KeyValuePair<TKey, TValue>>(Func<KeyValuePair<TKey, TValue>, Int32, Boolean>^) | Overloaded. Filters a sequence of values based on a predicate. Each element's index is used in the logic of the predicate function.(Defined by Enumerable.) |
![]() | Zip<KeyValuePair<TKey, TValue>, TSecond, TResult>(IEnumerable<TSecond>^, Func<KeyValuePair<TKey, TValue>, TSecond, TResult>^) | Applies a specified function to the corresponding elements of two sequences, producing a sequence of the results.(Defined by Enumerable.) |
For very large ConcurrentDictionary<TKey, TValue> objects, you can increase the maximum array size to 2 gigabytes (GB) on a 64-bit system by setting the configuration element to true in the run-time environment.
Note |
|---|
ConcurrentDictionary<TKey, TValue> implements the IReadOnlyCollection<T> and IReadOnlyDictionary<TKey, TValue> interfaces starting with the .NET Framework 4.6; in previous versions of the .NET Framework, the ConcurrentDictionary<TKey, TValue> class did not implement these interfaces. |
Like the System.Collections.Generic::Dictionary<TKey, TValue> class, ConcurrentDictionary<TKey, TValue> implements the IDictionary<TKey, TValue> interface. In addition, ConcurrentDictionary<TKey, TValue> provides several methods for adding or updating key/value pairs in the dictionary, as described in the following table.
To do this | Use this method | Usage notes |
|---|---|---|
Add a new key to the dictionary, if it doesn’t already exist in the dictionary | This method adds the specified key/value pair, if the key doesn’t currently exist in the dictionary. The method returns true or false depending on whether the new pair was added. | |
Update the value for an existing key in the dictionary, if that key has a specific value | This method checks whether the key has a specified value, and if it does, updates the key with a new value. It's similar to the CompareExchange method, except that it's used for dictionary elements. | |
Store a key/value pair in the dictionary unconditionally, and overwrite the value of a key that already exists | The indexer’s setter: dictionary[key] = newValue | |
Add a key/value pair to the dictionary, or if the key already exists, update the value for the key based on the key’s existing value | AddOrUpdate(TKey, Func<TKey, TValue>^, Func<TKey, TValue, TValue>^) —or— | AddOrUpdate(TKey, Func<TKey, TValue>^, Func<TKey, TValue, TValue>^) accepts the key and two delegates. It uses the first delegate if the key doesn’t exist in the dictionary; it accepts the key and returns the value that should be added for the key. It uses the second delegate if the key does exist; it accepts the key and its current value, and it returns the new value that should be set for the key. AddOrUpdate(TKey, TValue, Func<TKey, TValue, TValue>^) accepts the key, a value to add, and the update delegate. This is the same as the previous overload, except that it doesn't use a delegate to add a key. |
Get the value for a key in the dictionary, adding the value to the dictionary and returning it if the key doesn’t exist | —or— | These overloads provide lazy initialization for a key/value pair in the dictionary, adding the value only if it’s not there. GetOrAdd(TKey, TValue) takes the value to be added if the key doesn’t exist. GetOrAdd(TKey, Func<TKey, TValue>^) takes a delegate that will generate the value if the key doesn’t exist. |
All these operations are atomic and are thread-safe with regards to all other operations on the ConcurrentDictionary<TKey, TValue> class. The only exceptions are the methods that accept a delegate, that is, AddOrUpdate and GetOrAdd. For modifications and write operations to the dictionary, ConcurrentDictionary<TKey, TValue> uses fine-grained locking to ensure thread safety. (Read operations on the dictionary are performed in a lock-free manner.) However, delegates for these methods are called outside the locks to avoid the problems that can arise from executing unknown code under a lock. Therefore, the code executed by these delegates is not subject to the atomicity of the operation.
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1
All public and protected members of ConcurrentDictionary<TKey, TValue> are thread-safe and may be used concurrently from multiple threads. However, members accessed through one of the interfaces the ConcurrentDictionary<TKey, TValue> implements, including extension methods, are not guaranteed to be thread safe and may need to be synchronized by the caller.






