當我以 Linq 來查詢設定檔(app.config)的資料時,會使用下列的語法
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(configFilePath); ZipConfigurationSection section = config.GetSection("zipSetting") as ZipConfigurationSection; var q = from i in section.Periods select i;
結果出現下面的錯誤 Could not find an implementation of the query pattern for source type 'A.B.PeriodsConfigurationElementCollection'. 'Select' not found. Consider explicitly specifying the type of the range variable 'i'. 這是因為 section.Periods 並未實作 IEnumable<T>。
這怎麼辦呢?
還好,這方面微軟已經幫我們注意到了。此時改用下面語法即可var q = from i in section.Periods.Cast
Cast後的結果,就是 IEnumable<PeriodConfigurationElement>了。同樣的方法,適用在 System.Collections 中的 Class,如 ArrayList
沒有留言:
張貼留言