Gemstone Common Library
Show/Hide TOC

# CollectionExtensionsGetOrAdd TKey, TValue(IDictionary TKey, TValue, TKey, Func TKey, TValue) Method

Adds a key/value pair to the IDictionaryTKey, TValue if the key does not already exist.

## Definition

Namespace: Gemstone.Collections.CollectionExtensions
Assembly: Gemstone.Common (in Gemstone.Common.dll) Version: 1.0.159 -- Release Build+a612c25bc0e1c87e5766544ec4650d2ebcfddcf4
C#
View Source Request Example

    public static TValue GetOrAdd<TKey, TValue>(
    	this IDictionary<TKey, TValue> dictionary,
    	TKey key,
    	Func<TKey, TValue> valueFactory
    )

VB
View Source Request Example

    <ExtensionAttribute>
    Public Shared Function GetOrAdd(Of TKey, TValue) (
    	dictionary As IDictionary(Of TKey, TValue),
    	key As TKey,
    	valueFactory As Func(Of TKey, TValue)
    ) As TValue

C++
View Source Request Example

    public:
    [ExtensionAttribute]
    generic<typename TKey, typename TValue>
    static TValue GetOrAdd(
    	IDictionary<TKey, TValue>^ dictionary,
    	TKey key,
    	Func<TKey, TValue>^ valueFactory
    )

JavaScript
View Source Request Example

    JavaScript does not support generic types or methods.

#### Parameters

dictionary IDictionary TKey, TValue
  The dictionary to add the key/value pair to if the key does not already exist.
key TKey
  The key to be added to the dictionary if it does not already exist.
valueFactory Func TKey, TValue
  The function used to generate a value for the key.

#### Type Parameters

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

#### Return Value

TValue
The value of the key in the dictionary.

#### Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type IDictionary TKey, 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).

## See Also

#### Reference

CollectionExtensions Class
GetOrAdd Overload
Gemstone.Collections.CollectionExtensions Namespace