2009-09-12 29 views
7

Tôi đang cố gắng tìm ra cách tôi có thể sử dụng LINQ để lọc ra một số ứng dụng của tôi từ tệp web.config của tôi.Tôi có thể sử dụng LINQ để lặp/lọc web.config AppSettings của tôi không?

tôi đang cố gắng để làm một cái gì đó như sau (trong đó có cú pháp sai): -

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

những gì đã làm gì sai?

chỉnh sửa: thêm screenie (đây là a link to it)

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

+0

Lỗi bạn đang gặp phải là gì? Ở trên có vẻ không sao ... –

+0

Đã thêm liên kết và hình ảnh. –

Trả lời

9

Hãy thử điều này nếu bạn muốn các giá trị:

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

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

Thậm chí tốt hơn :) tuyệt vời! cảm ơn :) –

1

Có thể là vì KeysCollection chỉ thực hiện IEnumerable không IEnumerable <T>. Hãy thử sử dụng các phương pháp Cast trên tài sản phím đầu tiên, một cái gì đó như:

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

Có vẻ tốt. –

0

tôi đã có thể nghĩ rằng những điều sau đây

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

(áp dụng cho ứng dụng bảng điều khiển)

Các vấn đề liên quan