我可以使用Linq迭代/过滤我的web.config AppSettings吗?

时间:2009-09-12 04:22:34

标签: asp.net linq appsettings

我正在试图弄清楚如何使用Linq从我的web.config文件中过滤掉一些我的appsettings。

我正在尝试执行以下操作(语法错误): -

var query = from q in System.Web.Configuration.WebConfigurationManager.AppSettings.Keys
            where q.StartsWith("Foo")
            select q);

我做错了什么?

编辑:添加了screenie(这里是a link to it

alt text http://img21.imageshack.us/img21/5516/errorji.png

3 个答案:

答案 0 :(得分:9)

如果您想要值,请尝试此操作:

var settings = System.Web.Configuration.WebConfigurationManager.AppSettings;

var query = from string q in settings.Keys
            where q.StartsWith("Foo")
            select settings[q];

答案 1 :(得分:1)

可能是因为KeysCollection只实现IEnumerable而不是IEnumerable <T&gt;。首先尝试在Keys属性上使用Cast方法,例如:

var query = from q in System.Web.Configuration.WebConfigurationManager.AppSettings.Keys.Cast<string>()
        where q.StartsWith("Foo")
        select q;

答案 2 :(得分:0)

我能够想到以下

            var appStngVals = from s in ConfigurationManager.AppSettings.OfType<string>()
                      where s.StartsWith("Foo")
                      select ConfigurationManager.AppSettings[s];

(适用于控制台应用)