在Lambda表达式中检查Null的干净方法

9

我看到了很多关于这个问题的提问,但没有找到一个简洁的解决方案:

我有以下lambda表达式:

var result = Store.FirstOrDefault(x.Products.Coupon[0] == 100);

我想检查Coupon集合是否为null,然后比较第一个coupon的值是否为100。那么在lambda中如何干净地检查Coupon是否为NULL?我不想使用扩展方法来检查是否为空。我希望在同一行内进行检查。


2
遗憾的是,在linq-sql中没有保证检查顺序,因此您无法真正检查null,然后对null对象进行检查,因为它会抛出一个错误。不过,linq-objects支持这个功能。 - Travis J
1个回答

20
var result = Store.FirstOrDefault(x => x.Products.Coupon != null && x.Products.Coupon.Any() && x.Products.Coupon[0] == 100);

2
@TravisJ用户1527762在问题中没有提到需要支持Linq to Sql。 - Corey Sunwold
2
抱歉,我忘记提到了,这不是linq to sql,而是linq to objects lambda。 - user1527762

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接