.NET Framework Class Library Dictionary<(Of <(TKey, TValue>)>)..::.ContainsKey Method
Namespace:
System.Collections.Generic
Assembly:
mscorlib (in mscorlib.dll)

Syntax
Public Function ContainsKey ( _
key As TKey _
) As Boolean
public bool ContainsKey(
TKey key
)
public:
virtual bool ContainsKey(
TKey key
) sealed
abstract ContainsKey :
key:'TKey -> bool
override ContainsKey :
key:'TKey -> bool
ImplementsIDictionary<(Of <(TKey, TValue>)>)..::.ContainsKey(TKey)

Exceptions
| Exception | Condition |
|---|
| ArgumentNullException |
key is nullNothingnullptra null reference (Nothing in Visual Basic). |

Remarks
This method approaches an O(1) operation.

Examples
The following code example shows how to use the ContainsKey method to test whether a key exists prior to calling the Add method. It also shows how to use the TryGetValue method to retrieve values, which is an efficient way to retrieve values when a program frequently tries keys that are not in the dictionary. Finally, it shows the least efficient way to test whether keys exist, by using the Item property (the indexer in C#). This code example is part of a larger example provided for the Dictionary<(Of <(TKey, TValue>)>) class.
' ContainsKey can be used to test keys before inserting
' them.
If Not openWith.ContainsKey("ht") Then
openWith.Add("ht", "hypertrm.exe")
Console.WriteLine("Value added for key = ""ht"": {0}", _
openWith("ht"))
End If
...
' When a program often has to try keys that turn out not to
' be in the dictionary, TryGetValue can be a more efficient
' way to retrieve values.
Dim value As String = ""
If openWith.TryGetValue("tif", value) Then
Console.WriteLine("For key = ""tif"", value = {0}.", value)
Else
Console.WriteLine("Key = ""tif"" is not found.")
End If
...
' The default Item property throws an exception if the requested
' key is not in the dictionary.
Try
Console.WriteLine("For key = ""tif"", value = {0}.", _
openWith("tif"))
Catch
Console.WriteLine("Key = ""tif"" is not found.")
End Try
// ContainsKey can be used to test keys before inserting
// them.
if (!openWith.ContainsKey("ht"))
{
openWith.Add("ht", "hypertrm.exe");
Console.WriteLine("Value added for key = \"ht\": {0}",
openWith["ht"]);
}
...
// When a program often has to try keys that turn out not to
// be in the dictionary, TryGetValue can be a more efficient
// way to retrieve values.
string value = "";
if (openWith.TryGetValue("tif", out value))
{
Console.WriteLine("For key = \"tif\", value = {0}.", value);
}
else
{
Console.WriteLine("Key = \"tif\" is not found.");
}
...
// The indexer throws an exception if the requested key is
// not in the dictionary.
try
{
Console.WriteLine("For key = \"tif\", value = {0}.",
openWith["tif"]);
}
catch (KeyNotFoundException)
{
Console.WriteLine("Key = \"tif\" is not found.");
}
// ContainsKey can be used to test keys before inserting
// them.
if (!openWith->ContainsKey("ht"))
{
openWith->Add("ht", "hypertrm.exe");
Console::WriteLine("Value added for key = \"ht\": {0}",
openWith["ht"]);
}
...
// When a program often has to try keys that turn out not to
// be in the dictionary, TryGetValue can be a more efficient
// way to retrieve values.
String^ value = "";
if (openWith->TryGetValue("tif", value))
{
Console::WriteLine("For key = \"tif\", value = {0}.", value);
}
else
{
Console::WriteLine("Key = \"tif\" is not found.");
}
...
// The indexer throws an exception if the requested key is
// not in the dictionary.
try
{
Console::WriteLine("For key = \"tif\", value = {0}.",
openWith["tif"]);
}
catch (KeyNotFoundException^)
{
Console::WriteLine("Key = \"tif\" is not found.");
}

Version Information
.NET FrameworkSupported in: 4, 3.5, 3.0, 2.0 .NET Framework Client ProfileSupported in: 4, 3.5 SP1 Portable Class LibrarySupported in: Portable Class Library

Platforms
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role not supported), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

See Also
|
.NET Framework-Klassenbibliothek Dictionary<(Of <(TKey, TValue>)>)..::.ContainsKey-Methode
Namespace:
System.Collections.Generic
Assembly:
mscorlib (in mscorlib.dll)

Syntax
Public Function ContainsKey ( _
key As TKey _
) As Boolean
public bool ContainsKey(
TKey key
)
public:
virtual bool ContainsKey(
TKey key
) sealed
abstract ContainsKey :
key:'TKey -> bool
override ContainsKey :
key:'TKey -> bool
ImplementiertIDictionary<(Of <(TKey, TValue>)>)..::.ContainsKey(TKey)

Ausnahmen
| Ausnahme | Bedingung |
|---|
| ArgumentNullException |
key hat den Wert nullNothingnullptrNULL-Verweis (Nothing in Visual Basic). |

Hinweise
Diese Methode kommt einem O(1)-Vorgang nahe.

Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie vor dem Aufrufen der Add-Methode mithilfe der ContainsKey-Methode überprüft wird, ob ein Schlüssel vorhanden ist. Außerdem wird das Abrufen von Werten mithilfe der TryGetValue-Methode veranschaulicht. Wenn ein Programm häufig versucht, auf Werte zuzugreifen, die nicht im Wörterbuch enthalten sind, lassen sich Werte auf diese Weise effizienter abrufen. Abschließend wird mit der Item-Eigenschaft (Indexer in C#) die am wenigsten effiziente Methode zum Testen des Vorhandenseins von Schlüsseln gezeigt. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels, das für die Dictionary<(Of <(TKey, TValue>)>)-Klasse bereitgestellt wird.
' ContainsKey can be used to test keys before inserting
' them.
If Not openWith.ContainsKey("ht") Then
openWith.Add("ht", "hypertrm.exe")
Console.WriteLine("Value added for key = ""ht"": {0}", _
openWith("ht"))
End If
...
' When a program often has to try keys that turn out not to
' be in the dictionary, TryGetValue can be a more efficient
' way to retrieve values.
Dim value As String = ""
If openWith.TryGetValue("tif", value) Then
Console.WriteLine("For key = ""tif"", value = {0}.", value)
Else
Console.WriteLine("Key = ""tif"" is not found.")
End If
...
' The default Item property throws an exception if the requested
' key is not in the dictionary.
Try
Console.WriteLine("For key = ""tif"", value = {0}.", _
openWith("tif"))
Catch
Console.WriteLine("Key = ""tif"" is not found.")
End Try
// ContainsKey can be used to test keys before inserting
// them.
if (!openWith.ContainsKey("ht"))
{
openWith.Add("ht", "hypertrm.exe");
Console.WriteLine("Value added for key = \"ht\": {0}",
openWith["ht"]);
}
...
// When a program often has to try keys that turn out not to
// be in the dictionary, TryGetValue can be a more efficient
// way to retrieve values.
string value = "";
if (openWith.TryGetValue("tif", out value))
{
Console.WriteLine("For key = \"tif\", value = {0}.", value);
}
else
{
Console.WriteLine("Key = \"tif\" is not found.");
}
...
// The indexer throws an exception if the requested key is
// not in the dictionary.
try
{
Console.WriteLine("For key = \"tif\", value = {0}.",
openWith["tif"]);
}
catch (KeyNotFoundException)
{
Console.WriteLine("Key = \"tif\" is not found.");
}
// ContainsKey can be used to test keys before inserting
// them.
if (!openWith->ContainsKey("ht"))
{
openWith->Add("ht", "hypertrm.exe");
Console::WriteLine("Value added for key = \"ht\": {0}",
openWith["ht"]);
}
...
// When a program often has to try keys that turn out not to
// be in the dictionary, TryGetValue can be a more efficient
// way to retrieve values.
String^ value = "";
if (openWith->TryGetValue("tif", value))
{
Console::WriteLine("For key = \"tif\", value = {0}.", value);
}
else
{
Console::WriteLine("Key = \"tif\" is not found.");
}
...
// The indexer throws an exception if the requested key is
// not in the dictionary.
try
{
Console::WriteLine("For key = \"tif\", value = {0}.",
openWith["tif"]);
}
catch (KeyNotFoundException^)
{
Console::WriteLine("Key = \"tif\" is not found.");
}

Versionsinformationen
.NET FrameworkUnterstützt in: 4, 3.5, 3.0, 2.0 .NET Framework Client ProfileUnterstützt in: 4, 3.5 SP1 Unterstützt in:

Plattformen
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Siehe auch
|