首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NameValueCollection中查找密钥

在NameValueCollection中查找密钥
EN

Stack Overflow用户
提问于 2019-07-19 02:27:54
回答 1查看 121关注 0票数 0

我正在尝试在namevaluecollection集合中查找一个键。如果找到了密钥,则应执行下一段代码,否则不会执行。

我的Web.config配置如下:

代码语言:javascript
复制
  <Dropdownvalue>
    <add key="5" value="Yes" />
    <add key="8" value="No" />
    <add key="9" value="Maybe" />
  </Dropdownvalue>

我的代码是:

代码语言:javascript
复制
public string getMyId(int MyId)
{
    NameValueCollection colMaster = (NameValueCollection)ConfigurationManager.GetSection("Dropdownvalue");

    if (colMaster[MyId] != null)
    {
        //execute code
    }
}

当MyId =9时,我得到下面的错误,原因很明显,它试图获取第9条记录,而不是将MyId与键9进行比较。

代码语言:javascript
复制
System.ArgumentOutOfRangeException: 'Index was out of range. 

我知道下面的代码可以很好地工作:

代码语言:javascript
复制
colMaster["9"]

但是,我的值是动态变化的,所以这在我的场景中不起作用。

有没有一种方法可以在namevaluecollection中或者在它之外访问web.config中的键?

EN

回答 1

Stack Overflow用户

发布于 2019-07-19 02:35:52

你的问题是MyID不是一个字符串。请看下面的代码:

代码语言:javascript
复制
    static void Main(string[] args)
    {
        var nvc = new NameValueCollection {{"5", "first value"}, {"6", "second value"}, {"9", "third value"}};

        Console.WriteLine(nvc["5"]); // first value
        Console.WriteLine(nvc[1]);   // second value
        Console.WriteLine(nvc[3]);   // index was out of range
    }

nvc[0]将打印第一个值。将MyID转换为字符串以使其工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57100663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档