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

定義

取得與指定索引鍵關聯的值。Gets the value associated with the specified key.

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

參數

key
TKey TKey TKey TKey

要取得之值的索引鍵。The key of the value to get.

value
TValue TValue TValue TValue

這個方法傳回時,如果找到索引鍵,則包含與指定索引鍵關聯的值,否則為 value 參數的型別預設值。When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. 這個參數會以未初始化的狀態傳遞。This parameter is passed uninitialized.

傳回

如果 true 包含具有指定索引鍵的項目,則為 Dictionary<TKey,TValue>,否則為 falsetrue if the Dictionary<TKey,TValue> contains an element with the specified key; otherwise, false.

實作

例外狀況

範例

此範例示範如何使用TryGetValue方法,以更有效率的方式來抓取程式中經常嘗試不在字典中之索引鍵的值。The example shows how to use the TryGetValue method as a more efficient way to retrieve values in a program that frequently tries keys that are not in the dictionary. 相反地,此範例也會示範Item[TKey]屬性(中C#的索引子)在嘗試取出不存在的索引鍵時,如何擲回例外狀況。For contrast, the example also shows how the Item[TKey] property (the indexer in C#) throws exceptions when attempting to retrieve nonexistent keys.

這個程式碼範例是針對Dictionary<TKey,TValue>類別提供之較大範例的一部分(openWith這是此範例中使用的字典名稱)。This code example is part of a larger example provided for the Dictionary<TKey,TValue> class (openWith is the name of the Dictionary used in this example).

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

備註

這個方法結合了ContainsKey方法Item[TKey]和屬性的功能。This method combines the functionality of the ContainsKey method and the Item[TKey] property.

如果找不到索引鍵value ,則參數會取得適當的類型TValue預設值,例如,整數類型為0(零)、 false針對布林類型,以及null參考型別。If the key is not found, then the value parameter gets the appropriate default value for the type TValue; for example, 0 (zero) for integer types, false for Boolean types, and null for reference types.

如果您TryGetValue的程式碼經常嘗試存取不在字典中的索引鍵,請使用方法。Use the TryGetValue method if your code frequently attempts to access keys that are not in the dictionary. 使用這個方法比捕捉KeyNotFoundException Item[TKey]屬性所擲回的效率更有效率。Using this method is more efficient than catching the KeyNotFoundException thrown by the Item[TKey] property.

這個方法會使用 O (1)運算。This method approaches an O(1) operation.

適用於

另請參閱