2013-03-10 5 views
6

मैं इस पर सवाल का एक बहुत देखा लेकिन एक साफ समाधान खोजने के लिए सक्षम नहीं था की है:स्वच्छ रास्ता लैम्ब्डा में अशक्त के लिए जाँच करने के लिए भाव

मैं निम्नलिखित लैम्ब्डा अभिव्यक्ति है:

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

मैं यह देखने के लिए कूपन संग्रह के लिए शून्य की जांच करना चाहेंगे कि यह शून्य नहीं है और फिर मूल्य 100 के साथ पहले कूपन की तुलना करें। लैम्ब्डा में कूपन के लिए NULL की जांच करने का एक साफ तरीका क्या होगा? मैं शून्य के लिए जांच करने के लिए एक विस्तार विधि का उपयोग नहीं करना चाहता। मैं चेक इनलाइन करना चाहता हूं।

+2

दुर्भाग्य LINQ-एसक्यूएल में जांच के लिए कोई गारंटी आदेश ताकि आप वास्तव में अशक्त के लिए जाँच नहीं कर सकते हैं और फिर एक अशक्त वस्तु के खिलाफ एक चेक बनाने क्योंकि यह एक त्रुटि फेंक नहीं है। लिनक-ऑब्जेक्ट्स हालांकि इसका समर्थन करता है। –

उत्तर

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

@TravisJ उपयोगकर्ता 1527762 ने प्रश्न में लिंक से एसक्यूएल का समर्थन करने की आवश्यकता के बारे में कुछ भी उल्लेख नहीं किया। –

+2

क्षमा करें क्षमा करना भूल गया, यह एसक्यूएल के लिए linq नहीं है लेकिन lambda वस्तुओं के लिए linq – user1527762

संबंधित मुद्दे