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

Definitie

Hiermee haalt u de waarde op die is gekoppeld aan de opgegeven sleutel.

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

Parameters

key
TKey

De sleutel van de waarde die moet worden opgehaald.

value
TValue

Wanneer deze methode wordt geretourneerd, bevat deze de waarde die is gekoppeld aan de opgegeven sleutel, als de sleutel wordt gevonden; anders is de standaardwaarde voor het type van de value parameter. Deze parameter wordt niet-geïnitialiseerd doorgegeven.

Retouren

trueals het Dictionary<TKey,TValue> een element met de opgegeven sleutel bevat; anders. false

Implementeringen

Uitzonderingen

key is null.

Voorbeelden

In het voorbeeld ziet u hoe u de TryGetValue methode gebruikt als een efficiëntere manier om waarden op te halen in een programma waarin vaak sleutels worden geprobeerd die niet in de woordenlijst staan. In het voorbeeld ziet u daarentegen ook hoe de Item[] eigenschap (de indexeerfunctie in C#) uitzonderingen genereert bij het ophalen van niet-bestaande sleutels.

Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de Dictionary<TKey,TValue> klasse (openWith is de naam van de woordenlijst die in dit voorbeeld wordt gebruikt).

// 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.
match openWith.TryGetValue "tif" with
| true, value -> printfn $"For key = \"tif\", value = {value}."
| _ -> printfn "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
    printfn $"""For key = "tif", value = {openWith["tif"]}"""
with :? KeyNotFoundException ->
    printfn "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

Opmerkingen

Deze methode combineert de functionaliteit van de ContainsKey methode en de Item[] eigenschap.

Als de sleutel niet wordt gevonden, krijgt de value parameter de juiste standaardwaarde voor het type TValue, bijvoorbeeld 0 (nul) voor gehele getallen, false voor Booleaanse typen en null voor verwijzingstypen.

Gebruik de TryGetValue methode als uw code vaak probeert toegang te krijgen tot sleutels die zich niet in de woordenlijst bevinden. Het gebruik van deze methode is efficiënter dan het vangen van de KeyNotFoundException gegenereerde eigenschap Item[] .

Deze methode benadert een O(1)-bewerking.

Van toepassing op

Zie ook