KeyValuePair<TKey, TValue> Structure
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Defines a key/value pair that can be set or retrieved.
Assembly: mscorlib (in mscorlib.dll)
The KeyValuePair<TKey, TValue> type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | KeyValuePair<TKey, TValue> | Initializes a new instance of the KeyValuePair<TKey, TValue> structure with the specified key and value. |
| Name | Description | |
|---|---|---|
![]() | Equals | Indicates whether this instance and a specified object are equal. (Inherited from ValueType.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Returns the hash code for this instance. (Inherited from ValueType.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ToString | 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) requires 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:
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 (the second example) provided for the Dictionary<TKey, TValue> class.


