2013-03-10 51 views
6

干净的方式我已经看到了很多关于这个问题,但没能找到一个干净的解决方案:在lambda来检查空表达式

我有以下lambda表达式:

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

我想要检查Coupon集合的空值来检查它是否为空,然后将第一个优惠券与值100进行比较。什么是检查lambda中的优惠券的NULL的干净方法?我不想使用扩展方法来检查null。我想在内联检查。

+2

不幸的是在LINQ-SQL没有用于检查没有保证的顺序,所以你不能真正检查空,然后进行对空对象的检查,因为它会抛出一个错误。 linq-objects支持这个。 – 2013-03-10 21:22:06

回答

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

@TravisJ user1527762没有提到需要在问题中支持Linq to Sql的任何事情。 – 2013-03-10 21:23:30

+2

对不起忘了提及,这不是LINQ到SQL,但LINQ到对象lambda – user1527762 2013-03-10 21:26:17