7

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

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

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

我做错了什么?

编辑:添加screenie(这是它的链接

替代文字 http://img21.imageshack.us/img21/5516/errorji.png

4

3 回答 3

9

如果你想要这些值,试试这个:

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

var query = from string q in settings.Keys
            where q.StartsWith("Foo")
            select settings[q];
于 2009-09-12T04:48:00.347 回答
1

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

var query = from q in System.Web.Configuration.WebConfigurationManager.AppSettings.Keys.Cast<string>()
        where q.StartsWith("Foo")
        select q;
于 2009-09-12T04:34:09.647 回答
0

我能够想到以下几点

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

(适用于控制台应用程序)

于 2010-11-10T10:12:59.490 回答