我有一个LINQ查询:
var productTypes = from ProductDto e in Product
select new
{
Id = e.Product.ID,
Name = e.Product.name
};
在上面的LINQ查询中,e.Product可能是null
。但我无法找到答案。
任何人都可以帮助我吗?如果e.Product为null
,我想在productTypes变量中指定null
。
答案 0 :(得分:13)
您可以使用ternary operator检查 null ,如下所示:
var productTypes = from ProductDto e in Product
select new
{
Id = e.Product != null ? e.Product.ID : 0,
Name = "xyz"
};
答案 1 :(得分:3)
如果您对产品中的空值感兴趣,可以添加where
条件
var productTypes = from ProductDto e in Product
where e.Product.ID != null
select new
{
Id = e.Product.ID,
Name = e.Product.name
};
如果您需要空值,请使用以下内容:
var productTypes = Product.Select( prod => {
if (prod.ID != null)
{
return new { ID = prod.ID, Name = prod.Name };
}
else
{
return null;
}
} );
答案 2 :(得分:0)
我顺便说一句。我们可以使用lambda表达式来实现: -
var productTypes = ProductList.Where(x => x.Product != null)
.Select(x => new
{
Id = x.Product.ID,
Name = x.Product.Name
}).ToList();