我正在尝试在namevaluecollection集合中查找一个键。如果找到了密钥,则应执行下一段代码,否则不会执行。
我的Web.config配置如下:
<Dropdownvalue>
<add key="5" value="Yes" />
<add key="8" value="No" />
<add key="9" value="Maybe" />
</Dropdownvalue>我的代码是:
public string getMyId(int MyId)
{
NameValueCollection colMaster = (NameValueCollection)ConfigurationManager.GetSection("Dropdownvalue");
if (colMaster[MyId] != null)
{
//execute code
}
}当MyId =9时,我得到下面的错误,原因很明显,它试图获取第9条记录,而不是将MyId与键9进行比较。
System.ArgumentOutOfRangeException: 'Index was out of range. 我知道下面的代码可以很好地工作:
colMaster["9"]但是,我的值是动态变化的,所以这在我的场景中不起作用。
有没有一种方法可以在namevaluecollection中或者在它之外访问web.config中的键?
发布于 2019-07-19 02:35:52
你的问题是MyID不是一个字符串。请看下面的代码:
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转换为字符串以使其工作。
https://stackoverflow.com/questions/57100663
复制相似问题