在我的ASP項目有這樣的代碼,用RegulationGroups
收益率回報慢的數據庫調用
private IEnumerable<RegulationGroup> LoadRegulations(string moduleName)
{
// database calls
yield return subLrg;
}
填充rr
在一個單獨的類,代碼循環遍歷多次
foreach (RegulationGroup rg in rr.RegulationGroups)
{
}
每次數據庫調用發生時代碼循環通過RegulationGroups
。我怎樣才能避免數據庫調用?
我想我可以
- 與
yield return
做掉,並在列表中使用List
- 緩存
IEnumerable
和我的模塊中使用它,使它不使用LoadRegulations
影響任何其他代碼方法。
旁註:你的變量名是smwht shrtnd。請考慮在公共代碼中使用合理可理解的名稱(或明顯假冒)。 –
你也很可能不需要'收益'的項目。 AsEnumerable的機會同樣可以發揮作用,並且更有效率。 – Servy