我在那裏實現了自己的配置類項目:使用IQueryable和LINQ查詢的好處是什麼?
IconSizesConfigSection: ConfigurationSection
IconSizesCollection: ConfigurationElementCollection
IconSize: ConfigurationElement
在Config
類存在此屬性:
public IQueryable<IconSize> IconSizes
{
get
{
IconSizesConfigSection configInfo = (IconSizesConfigSection)ConfigurationManager.GetSection("iconConfig");
return configInfo.IconSizes.OfType<IconSize>().AsQueryable<IconSize>();
}
}
IconSizes
屬性返回IconSizesCollection
從ConfigurationElementCollection
派生。而ConfigurationElementCollection
來自ICollection
,IEnumerable
。
在一些其他類我有這樣的代碼:
var previewIconSize = Config.IconSizes.FirstOrDefault(c => c.Name == "AvatarSize");
爲什麼在這種情況下使用遞延執行? 爲什麼最初它使用AsQueryable<IconSize>()
進行收集,然後使用LINQ和Deffered Execution?
與使用簡單列表相比,有什麼好處嗎?
我的懷疑是作者並沒有真正理解'IQueryable'和'IEnumerable'是什麼。 – AakashM 2013-05-02 14:04:19