我有一个项目实现了自己的配置类:
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 和延迟执行?
与使用简单列表相比有什么好处吗?