如何检查lambda表达式中where条件的null
?
listdropdownid.Id = listgroupid.Where(X => X.abc == desc).FirstOrDefault().abc_id.ToStr();
listdropdownid.Desc = desc;
如果abc == desc
失败,我需要将null
分配给listdropdownid.Id
。
答案 0 :(得分:1)
最优雅的方法是使用DefaultIfEmpty(newValue)
指定另一个默认值:
listdropdownid.Id = listgroupid
.Where(x => x.abc == desc)
.Select(x => x.abc_id.ToString())
.DefaultIfEmpty(null) // would be more useful if you'd provide a more meaningful value like "<not found>"
.First;
即使对于值类型也适用,在这种情况下,您也可以使用FirstOrDefault
,因为默认值string
已经是null
。你只需要选择它:
listdropdownid.Id = listgroupid
.Where(x => x.abc == desc)
.Select(x => x.abc_id.ToString())
.FirstOrDefault();
答案 1 :(得分:0)
这可以帮到你:
listdropdownid = listgroupid.Where(X => X.abc == desc).FirstOrDefault();
if (listdropdownid != null)
{
// Do something with listdropdownid.Id
}
答案 2 :(得分:0)
这样做
listdropdownid.Id = listgroupid.Where(X=>X!=null).Where(X => X.abc == desc).FirstOrDefault().abc_id.ToStr();