2009-09-12 20 views
7

Estoy tratando de averiguar cómo puedo usar Linq para filtrar algunos de mis juegos de mi archivo web.config.¿Puedo usar Linq para iterar/filtrar mi web.config AppSettings?

que estoy tratando de hacer algo como lo siguiente (que tiene una sintaxis incorrecta): -

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

lo que he hecho mal?

edición: screenie añadido (aquí está a link to it)

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

+0

¿Cuál es el error que está obteniendo? Lo anterior se ve bien ... –

+0

Enlace e imagen añadidos. –

Respuesta

9

probar esto si desea que los valores:

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

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

Aún mejor :) ¡increíble! Gracias :) –

1

podría deberse a que sólo se implementa KeysCollection no IEnumerable IEnumerable <T>. Trate de usar el método moldeada en la propiedad claves primera, algo así como:

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

Sí, se ve bien. –

0

yo era capaz de pensar en el siguiente

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

(según corresponda a una aplicación de consola)

Cuestiones relacionadas