ForEach中的c#静态成员
本文关键字:静态成员 中的 ForEach | 更新日期: 2023-09-27 18:04:06
我有以下内容:
blocks.Where(x => x.BlockName == NAVIGATION)
.ForEach(block => block.Data = db.Pages.Select(x => x.Name).ToList());
如果where
发现了多个块,我如何防止db.Pages.Select
对每个块执行数据库命中,并简单地将List
用于第二个和随后的块。
你可以有静态变量内lambda函数?
更新:如果where
找到零块,我不想执行fetch。
var blocksResult = blocks.Where(x => x.BlockName == NAVIGATION);
if (blocksResult.Any())
{
var blockData = db.Pages.Select(x => x.Name).ToList();
blocksResult.ForEach(block => block.Data = blockData);
}
或
List<string> blockData = null;
blocks.Where(x => x.BlockName == NAVIGATION).ForEach(block => block.Data = (blockData ?? (blockData = db.Pages.Select(x => x.Name).ToList())))