KeyValuePair<TKey, TValue> Structure
Defines a key/value pair that can be set or retrieved.
Assembly: mscorlib (in mscorlib.dll)
| Name | Description | |
|---|---|---|
![]() | KeyValuePair<TKey, TValue>(TKey, TValue) | Initializes a new instance of the KeyValuePair<TKey, TValue> structure with the specified key and value. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Indicates whether this instance and a specified object are equal.(Inherited from ValueType.) |
![]() | GetHashCode() | Returns the hash code for this instance.(Inherited from ValueType.) |
![]() | GetType() | |
![]() | 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) 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:
foreach( KeyValuePair<string, string> kvp in myDictionary ) { Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value); }
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.
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
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.
.jpeg?cs-save-lang=1&cs-lang=csharp)
.jpeg?cs-save-lang=1&cs-lang=csharp)