如何在lambda表达式中检查null

时间:2014-04-07 08:13:41

标签: asp.net

如何检查lambda表达式中where条件的null

listdropdownid.Id = listgroupid.Where(X => X.abc == desc).FirstOrDefault().abc_id.ToStr();
listdropdownid.Desc = desc;

如果abc == desc失败,我需要将null分配给listdropdownid.Id

3 个答案:

答案 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();