c# - 如何从 IDictionary 获得价值?当我尝试时,出现“不包含方法 TryGetValue”错误
问题描述
我有一个 IDictionary 对象,我的问题是如何按键读取数据?它看起来更简单的问题,但没有像TryGetValue这样的方法(甚至找不到类似的方法) 。只有Contains方法看起来可用,但我想按键获取数据的值。
我错过了stg吗?
编辑:详细
我正在尝试从以下位置获取值:
var browser = System.Web.HttpContext.Current.Request.Browser;
我想从内部定义的IDictionary
对象(命名)中获取值:Capabilities
System.Web.HttpContext.Current.Request.Browser
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;
}
推荐阅读
- google-sheets - 如何连接多列,然后应用数组公式返回所有行的数据
- r - 根据单独数据框中的因子查找行平均值
- scala - 运行特定的代码块,以防 Option 结果为 None 并具有特定的保护功能
- sql-server - T-SQL 提取两个已知字符之间的字符串
- c++ - 使用 GStreamer 发送和接收自定义 RTCP 数据包/事件
- php - 提取到具有空返回的方法
- ruby - Ruby 中的 Random.rand(x) 和 rand(x) 有什么区别
- javascript - 使用 sinon 和 chai 测试异步函数是否引发了异常
- firebase - 使用 orderBy 和 limit 的 React Native Firebase Firestore onSnapshot 查询第一次不返回所有记录而不是一条记录
- shell - AD 脚本 - 账户管理