KeyValuePair<'TKey, 'TValue> Structure


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Defines a key/value pair that can be set or retrieved.

Namespace:   System.Collections.Generic
Assembly:  mscorlib (in mscorlib.dll)

type KeyValuePair<'TKey, 'TValue> = struct end

Type Parameters


The type of the key.


The type of the value.

System_CAPS_pubmethodKeyValuePair<'TKey, 'TValue>('TKey, 'TValue)

Initializes a new instance of the KeyValuePair<'TKey, 'TValue> structure with the specified key and value.


Gets the key in the key/value pair.


Gets the value in the key/value pair.


Indicates whether this instance and a specified object are equal.(Inherited from ValueType.)


Returns the hash code for this instance.(Inherited from ValueType.)


Gets the Type of the current instance.(Inherited from Object.)


Returns a string representation of the KeyValuePair<'TKey, 'TValue>, using the string representations of the key and value.(Overrides ValueType.ToString().)

The Dictionary<'TKey, 'TValue>.Enumerator.Current property returns an instance of this type.

The foreach statement of the C# language (for each in C++, For Each in Visual Basic) returns an object of the type of the elements in the collection. Since each element of a collection based on IDictionary<'TKey, 'TValue> is a key/value pair, the element type is not the type of the key or the type of the value. Instead, the element type is KeyValuePair<'TKey, 'TValue>. For example:

No code example is currently available or this language may not be supported.

The foreach statement is a wrapper around the enumerator, which allows only reading from, not writing to, the collection.

The following code example shows how to enumerate the keys and values in a dictionary, using the KeyValuePair<'TKey, 'TValue> structure.

This code is part of a larger example provided for the Dictionary<'TKey, 'TValue> class.

No code example is currently available or this language may not be supported.

Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top