C# 如何从IDictionary获得价值?当我尝试时,我得到了;不包含方法TryGetValue“;错误
我有一个IDictionary对象,我的问题是如何通过键读取数据? 这个问题看起来更简单,但没有像TryGetValue这样的方法(甚至找不到类似的方法)。 只有Contains方法看起来可用,但我想通过键获取数据的值 我错过stg了吗 编辑: 作为细节 我试图从以下方面获取价值: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
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”]
。目前尚不清楚问题是什么。