2013-03-10 49 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