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

Uses the specified delegates to add a key/value pair to the dictionary if the key does not already exist, or to update a key/value pair in the dictionary if the 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.

Definition

Namespace: KGySoft.CoreLibraries
Assembly: KGySoft.CoreLibraries (in KGySoft.CoreLibraries.dll) Version: 7.0.0-rc.1
C#
public static TValue AddOrUpdate<TKey, TValue>(
	this IDictionary<TKey, TValue> dictionary,
	TKey key,
	Func<TKey, TValue> addValueFactory,
	Func<TKey, TValue, TValue> updateValueFactory
)

Parameters

dictionary  IDictionaryTKey, TValue
The target dictionary.
key  TKey
The key to be added or whose value should be updated.
addValueFactory  FuncTKey, TValue
A delegate used to generate a value for an absent key.
updateValueFactory  FuncTKey, TValue, TValue
A delegate used to generate a new value for an existing key based on the key's existing value.

Type Parameters

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

Return Value

TValue
The new value for the key. This will be either the result of addValueFactory (if the key was absent) or the result of updateValueFactory (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).

Exceptions

ArgumentNullExceptiondictionary, key, addValueFactory or updateValueFactory is .
NotSupportedExceptiondictionary is read-only.

See Also