C# 如何从IDictionary获得价值?当我尝试时,我得到了;不包含方法TryGetValue“;错误

C# 如何从IDictionary获得价值?当我尝试时,我得到了;不包含方法TryGetValue“;错误,c#,contains,trygetvalue,C#,Contains,Trygetvalue,我有一个IDictionary对象,我的问题是如何通过键读取数据? 这个问题看起来更简单,但没有像TryGetValue这样的方法(甚至找不到类似的方法)。 只有Contains方法看起来可用,但我想通过键获取数据的值 我错过stg了吗 编辑: 作为细节 我试图从以下方面获取价值: var browser = System.Web.HttpContext.Current.Request.Browser; 我想从System.Web.HttpContext.Current.Request.Bro

我有一个IDictionary对象,我的问题是如何通过键读取数据? 这个问题看起来更简单,但没有像TryGetValue这样的方法(甚至找不到类似的方法)。 只有Contains方法看起来可用,但我想通过键获取数据的值

我错过stg了吗

编辑: 作为细节

我试图从以下方面获取价值:

var browser = System.Web.HttpContext.Current.Request.Browser;
我想从
System.Web.HttpContext.Current.Request.Browser中定义的
IDictionary
对象(名为
Capabilities
)中获取值:

public IDictionary Capabilities { get; set; }

当我试图从这个对象读取值时,我不能。

您可以很容易地为
HttpBrowserCapabilities
编写一个扩展方法:

public static class CapExt {
    public static bool TryGetValue(this HttpBrowserCapabilities b, string key, out string value) => (value = (string)b[key]) != null;
}
或对于
IDictionary

public static class IDictionaryExt {
    public static bool TryGetValue(this IDictionary d, object key, out object value) => (value = d[key]) != null;
}

使用索引器
dict[key]
IDictionary
没有方法
TryGetValue
。为什么要从非通用
IDictionary
对象开始
TryGetValue()
是在通用
IDictionary
界面中定义的。您正在查找,但找到了是,
IDictionary
有一个属性
Keys
,但建议您使用
功能[“key”]
。目前尚不清楚问题是什么。