我的代码中有以下方法链:
MyFormCollection
.Select(form => Handler.HandleForm(form))
.Select(form =>
{
form.Id = Guid.Empty;
form.OtherProperty = existingValue;
return form;
})
.ToList()
.ForEach(FormService.SaveForm);
此代码的问题是Handler.HandleForm()
在某些情况下可以返回null。如果是这种情况,我想跳过该表单的其余方法,然后继续列表中的下一个项目。
有没有办法在不执行每一步的空检查的情况下执行此操作?
答案 0 :(得分:9)
我建议添加Where
:
MyFormCollection
.Select(form => Handler.HandleForm(form))
.Where(form => form != null) // <- from this line on not null form(s) only
...
答案 1 :(得分:0)
其他方法是通过将所有内容添加到.ForEach:
来简化查询MyFormCollection.ToList()
.ForEach(form => {
if((form = Handler.HandleForm(form)) != null)
{
form.Id = Guid.Empty;
form.OtherProperty = existingValue;
FormService.SaveForm(f))
}
}