DictionaryExtensionsAddOrUpdateTKey, TValue(IDictionaryTKey, TValue, TKey, TValue, TValue) Method

Adds or updates a key/value pair in the dictionary based on whether the specified key already exists. The operation is thread safe if dictionary is a ThreadSafeDictionaryTKey, TValue, ConcurrentDictionaryTKey, TValue or LockingDictionaryTKey, TValue instance. For other IDictionaryTKey, TValue implementations the caller should care about thread safety if needed.


Namespace: KGySoft.CoreLibraries
Assembly: KGySoft.CoreLibraries (in KGySoft.CoreLibraries.dll) Version: 7.0.0-rc.1
public static TValue AddOrUpdate<TKey, TValue>(
	this IDictionary<TKey, TValue> dictionary,
	TKey key,
	TValue addValue,
	TValue updateValue


dictionary  IDictionaryTKey, TValue
The target dictionary.
key  TKey
The key to be added or whose value should be updated.
addValue  TValue
The value to be added for an absent key.
updateValue  TValue
The value to be set for an existing key.

Type Parameters

The type of the keys in the dictionary.
The type of the values in the dictionary.

Return Value

The new value for the key. This will be either addValue (if the key was absent) or updateValue (if the key was present).

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type IDictionaryTKey, TValue. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).


ArgumentNullExceptiondictionary or key is .
NotSupportedExceptiondictionary is read-only.

See Also