请单击以进行评分并提供反馈
MSDN
MSDN Library
.NET 开发
先前版本
 TryGetValue 方法
全部折叠/全部展开 全部折叠
此页面仅适用于
Microsoft Visual Studio 2005/.NET Framework 2.0

同时提供下列产品的其他版本:
.NET Framework 类库
Dictionary.TryGetValue 方法

注意:此方法在 .NET Framework 2.0 版中是新增的。

获取与指定的键相关联的值。

命名空间:System.Collections.Generic
程序集:mscorlib(在 mscorlib.dll 中)

Visual Basic(声明)
Public Function TryGetValue ( _
    key As TKey, _
    <OutAttribute> ByRef value As TValue _
) As Boolean
Visual Basic(用法)
Dim instance As Dictionary(Of TKey, TValue)
Dim key As TKey
Dim value As TValue
Dim returnValue As Boolean

returnValue = instance.TryGetValue(key, value)
C#
public bool TryGetValue (
    TKey key,
    out TValue value
)
C++
public:
virtual bool TryGetValue (
    TKey key, 
    [OutAttribute] TValue% value
) sealed
J#
public final boolean TryGetValue (
    TKey key, 
    /** @attribute OutAttribute() */ /** @ref */ TValue value
)
JScript
JScript 不支持通过引用传递值类型参数。

参数

key

要获取的值的键。

value

当此方法返回值时,如果找到该键,便会返回与指定的键相关联的值;否则,则会返回 value 参数的类型默认值。该参数未经初始化即被传递。

返回值

如果 Dictionary 包含具有指定键的元素,则为 true;否则为 false
异常类型条件

ArgumentNullException

key 为 空引用(在 Visual Basic 中为 Nothing)。

此方法将 ContainsKey 方法与 Item 属性的功能结合在一起。

如果未找到键,value 参数便为值类型 TValue 获取适当的默认值;例如,为 integer 类型获取 0(零),为布尔值类型获取 false,为引用类型获取 空引用(在 Visual Basic 中为 Nothing)。

如果代码频繁尝试访问字典中不存在的键,则可使用 TryGetValue 方法。使用此方法比捕获 Item 属性引发的 KeyNotFoundException 更为有效。

此方法的运算复杂度接近 O(1)。

该示例演示当程序频繁尝试字典中不存在的键时,如何使用 TryGetValue 方法来作为检索值的一种更有效的方法。为了对比,该示例还演示 Item 属性(在 C# 中为索引器)在试图检索不存在的键时如何引发异常。

此代码示例摘自一个为 Dictionary 类提供的更大的示例。

Visual Basic
        ' 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
<br /><span space="preserve">...</span><br />        ' 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
C#
        // 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.");
        }
<br /><span space="preserve">...</span><br />        // 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.");
        }

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

.NET Framework

受以下版本支持:2.0

.NET Compact Framework

受以下版本支持:2.0
社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2010 Microsoft Corporation 版权所有。 保留所有权利 | 商标 | 隐私权声明
Page view tracker