LINQ设置值(如果不为空)
我有以下代码:LINQ设置值(如果不为空),linq,null,return-value,Linq,Null,Return Value,我有以下代码: model.Attendees.Single(p => p.Value == this.CurrentPerson.PersonId.ToString() && p.Disabled == false).Selected = true; 此人被禁用,因此在尝试将Selected设置为true时返回空引用 是否有LINQ方法处理此问题,或者我是否应该执行if not null then set value。。我已经尝试了Single和S
model.Attendees.Single(p => p.Value == this.CurrentPerson.PersonId.ToString() && p.Disabled == false).Selected = true;
此人被禁用,因此在尝试将Selected设置为true时返回空引用
是否有LINQ方法处理此问题,或者我是否应该执行if not null then set value。。我已经尝试了Single和SingleOrDefault最好的方法是(如注释所示)首先使用SingleOrDefault获取项目
var item = model.Attendees.SingleOrDefault(p => p.Value == this.CurrentPerson.PersonId.ToString() && p.Disabled == false);
然后检查项目是否为空,如果不是,则使用如下对象:
if(item != null)
{
item.Selected = true;
}
我假设您的目标是更新数据库以将与会者设置为选中?关于你想做什么的更多细节将帮助我们回答这个问题。老实说,IMHO最好的方法是在没有禁用p.Disabled条件的情况下执行
SingleOrDefault
。然后执行空检查和禁用检查,并处理通知用户它们已禁用。。否则,将变量.selected设置为true并保存。