ConcurrentDictionary<TKey, TValue>::AddOrUpdate Method (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.
Assembly: mscorlib (in mscorlib.dll)
public:
TValue AddOrUpdate(
TKey key,
Func<TKey, TValue>^ addValueFactory,
Func<TKey, TValue, TValue>^ updateValueFactory
)
Parameters
- key
-
Type:
TKey
The key to be added or whose value should be updated
- addValueFactory
-
Type:
System::Func<TKey, TValue>^
The function used to generate a value for an absent key
- updateValueFactory
-
Type:
System::Func<TKey, TValue, TValue>^
The function used to generate a new value for an existing key based on the key's existing value
Return Value
Type: TValueThe new value for the key. This will be either be the result of addValueFactory (if the key was absent) or the result of updateValueFactory (if the key was present).
| Exception | Condition |
|---|---|
| ArgumentNullException | key, addValueFactory, or updateValueFactory is null. |
| OverflowException | The dictionary already contains the maximum number of elements (MaxValue). |
If you call AddOrUpdate simultaneously on different threads, addValueFactory may be called multiple times, but its key/value pair might not be added to the dictionary for every call.
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1