2009-09-12 4 views
7

Sto cercando di capire come utilizzare Linq per filtrare alcune mie app dal mio file web.config.Posso usare Linq per iterare/filtrare il mio web.config AppSettings?

sto cercando di fare qualcosa di simile alla seguente (che ha la sintassi sbagliata): -

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

cosa ho fatto di male?

edit: screenie aggiunto (ecco a link to it)

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

+0

Qual è l'errore che si ottiene? Quanto sopra sembra ok ... –

+0

Aggiunto link e immagine. –

risposta

9

Prova questo se si desidera che i valori:

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

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

Ancora meglio :) fantastico! Grazie :) –

1

Potrebbe essere perché KeysCollection implementa solo non IEnumerable IEnumerable <T>. Provare a utilizzare il metodo Fusioni sulla proprietà Keys prima, qualcosa di simile:

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

Sì, sembra buono. –

0

ero in grado di pensare al seguente

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

(applicabile ad un'app console)