SALES: 1-800-867-1380
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

KeyValuePair<TKey, TValue> Structure

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

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

[SerializableAttribute]
public struct KeyValuePair<TKey, TValue>

Type Parameters

TKey

The type of the key.

TValue

The type of the value.

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:

foreach (KeyValuePair<int, string> kvp in myDictionary) {...}

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.

// When you use foreach to enumerate dictionary elements, 
// the elements are retrieved as KeyValuePair objects.
Console.WriteLine();
foreach( KeyValuePair<string, string> kvp in openWith )
{
    Console.WriteLine("Key = {0}, Value = {1}", 
        kvp.Key, kvp.Value);
}

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

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0

.NET Compact Framework

Supported in: 3.5, 2.0

XNA Framework

Supported in: 3.0, 2.0, 1.0
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

Show:
© 2014 Microsoft