首页 > 解决方案 > 如何从 IDictionary 获得价值?当我尝试时,出现“不包含方法 TryGetValue”错误

问题描述

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

我错过了stg吗?

编辑:详细

我正在尝试从以下位置获取值:

var browser = System.Web.HttpContext.Current.Request.Browser;

我想从内部定义的IDictionary对象(命名)中获取值:CapabilitiesSystem.Web.HttpContext.Current.Request.Browser

public IDictionary Capabilities { get; set; }

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

标签: c#containstrygetvalue

解决方案


您可以轻松地为以下内容编写扩展方法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;
}

推荐阅读