Partager via


Dictionary<TKey,TValue>.TryGetValue(TKey, TValue) Méthode

Définition

Obtient la valeur associée à la clé spécifiée.

public:
 virtual bool TryGetValue(TKey key, [Runtime::InteropServices::Out] TValue % value);
public bool TryGetValue (TKey key, out TValue value);
abstract member TryGetValue : 'Key * 'Value -> bool
override this.TryGetValue : 'Key * 'Value -> bool
Public Function TryGetValue (key As TKey, ByRef value As TValue) As Boolean

Paramètres

key
TKey

Clé de la valeur à obtenir.

value
TValue

Cette méthode retourne la valeur associée à la clé spécifiée, si la clé est trouvée ; sinon, retourne la valeur par défaut pour le type du paramètre value. Ce paramètre est passé sans être initialisé.

Retours

true si Dictionary<TKey,TValue> contient un élément correspondant à la clé spécifiée ; sinon, false.

Implémente

Exceptions

key a la valeur null.

Exemples

L’exemple montre comment utiliser la TryGetValue méthode comme un moyen plus efficace de récupérer des valeurs dans un programme qui essaie fréquemment des clés qui ne figurent pas dans le dictionnaire. Par contraste, l’exemple montre également comment la Item[] propriété (l’indexeur en C#) lève des exceptions lors de la tentative de récupération de clés inexistantes.

Cet exemple de code fait partie d’un exemple plus grand fourni pour la Dictionary<TKey,TValue> classe (openWith est le nom du dictionnaire utilisé dans cet exemple).

// 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.");
}
// 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.");
}
' 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 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.");
}
// 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.");
}
' 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

Remarques

Cette méthode combine les fonctionnalités de la ContainsKey méthode et de la Item[] propriété .

Si la clé est introuvable, le value paramètre obtient la valeur par défaut appropriée pour le type TValue; par exemple, 0 (zéro) pour les types entiers, false pour les types booléens et null pour les types de référence.

Utilisez la TryGetValue méthode si votre code tente fréquemment d’accéder à des clés qui ne figurent pas dans le dictionnaire. L’utilisation de cette méthode est plus efficace que l’intercepter par KeyNotFoundException la Item[] propriété.

Cette méthode approche une opération O(1).

S’applique à

Voir aussi