如何从web.config app key获取值到列表

时间:2017-07-11 14:16:31

标签: c#

我在web.config中有以下内容:

<add key="someValuestoReturn" value="60,59,58,57,56"/>

我想将这个整数值的列表返回到我的方法中,但是我很难调用web.config中的值列表:

    Private int GetValues(){

    var _list = System.Configuration.ConfigurationManager.AppSettings["someValuestoReturn"].ToList();  //<< doesn't work

return _list
    }

实现这一目标的最佳方式是什么?

谢谢

3 个答案:

答案 0 :(得分:1)

我可能会建议你以另一种方式解决这个问题。

让我们首先创建一个空字符串列表,我们将稍后将其放入数组中:

之后我们需要找到你的密钥,我们需要从一个密钥中获取值到我们新创建的列表中,但是我们必须注意分割,因为你的值是逗号分隔的,所以请检查下面的代码:

List<string> values = new List<string>();

foreach (string key in ConfigurationManager.AppSettings)
        {
            if (key.StartsWith("someValuestoReturn"))
            {
                string value = ConfigurationManager.AppSettings[key].Split(',');
                values.Add(value);
            }

        }

string[] myValuesfromWebConfig = values.ToArray();

就是这样,您将所有值存储在名为myValuesfromWebConfig的数组中

如果您想要的不是字符串,只需将列表/数组类型从string更改为int,例如..

如你所见,我包括

string value = ConfigurationManager.AppSettings[key].Split(',');

HERE MORE ABOUT Split method

因为您的值以逗号分隔,我想您想将它们分别添加到数组/列表中.. :)

由于

编辑:

由于您在评论中写的错误,我们可以跳过将其添加到数组中,只需删除该行,无论如何您都会将值存储在列表values中,所以最后它会迁移像这样:

List<string> values = new List<string>();

foreach (string key in ConfigurationManager.AppSettings)
{
     if (key.StartsWith("someValuestoReturn"))
     {
                    string value = ConfigurationManager.AppSettings[key].Split(',');
                    values.Add(value);
     }

}

现在,如果您需要阅读这些值或随意使用它们,您可以循环使用它们,例如:

foreach(var item in values)
{
  //Do whatever you want with your item
}

答案 1 :(得分:0)

返回的字符串不是List

使用List

var _list = System.Configuration.ConfigurationManager.AppSettings["someValuestoReturn"].Split(",");

答案 2 :(得分:0)

System.Configuration.ConfigurationManager.AppSettings["someValuestoReturn"].Split(',');

它将返回一个字符串数组