代码之家  ›  专栏  ›  技术社区  ›  Pure.Krome

我可以使用LINQ迭代/筛选web.config应用程序设置吗?

  •  7
  • Pure.Krome  · 技术社区  · 15 年前

    我正在尝试找出如何使用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 回复  |  直到 14 年前
        1
  •  9
  •   dso    15 年前

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

    var settings = System.Web.Configuration.WebConfigurationManager.AppSettings;
    
    var query = from string q in settings.Keys
                where q.StartsWith("Foo")
                select settings[q];
    
        2
  •  1
  •   Simon Fox    15 年前

    可能是因为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;
    
        3
  •  0
  •   Prasanna K Rao    14 年前

    我能想到以下几点

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

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