Sdílet prostřednictvím


Dictionary<TKey,TValue>.TryGetValue(TKey, TValue) Metoda

Definice

Získá hodnotu přidruženou k zadanému klíči.

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

Parametry

key
TKey

Klíč hodnoty, kterou chcete získat

value
TValue

Když tato metoda vrátí, obsahuje hodnotu přidruženou k zadanému klíči, pokud je nalezen klíč; v opačném případě výchozí hodnota pro typ parametru value . Tento parametr se předává neinicializovaný.

Návraty

true pokud obsahuje Dictionary<TKey,TValue> prvek se zadaným klíčem, falsev opačném případě .

Implementuje

Výjimky

key je null.

Příklady

Příklad ukazuje, jak použít metodu TryGetValue jako efektivnější způsob načtení hodnot v programu, který často zkouší klíče, které nejsou ve slovníku. Naproti tomu příklad také ukazuje, jak Item[] vlastnost (indexer v jazyce C#) vyvolává výjimky při pokusu o načtení neexistujících klíčů.

Tento příklad kódu je součástí většího příkladu Dictionary<TKey,TValue> pro třídu (openWith je název slovníku použitého v tomto příkladu).

// 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

Poznámky

Tato metoda kombinuje funkce ContainsKey metody a Item[] vlastnosti.

Pokud klíč není nalezen, value získá parametr odpovídající výchozí hodnotu pro typ TValue, například 0 (nula) pro celočíselné typy, false pro logické typy a null pro referenční typy.

Metodu použijte, TryGetValue pokud se váš kód často pokouší získat přístup ke klíčům, které nejsou ve slovníku. Použití této metody je efektivnější než zachycení KeyNotFoundException vyvolání Item[] vlastností.

Tato metoda přistupuje k operaci O(1).

Platí pro

Viz také