मेरे पास ऑब्जेक्ट्स की एक सूची है जिसमें एक व्यक्ति ऑब्जेक्ट होता है जिसमें शून्य हो सकती है। मैं क्या करना चाहता हूं वह पहली व्यक्ति वस्तु की नाम संपत्ति का मूल्य प्राप्त करें जो शून्य नहीं है और यदि सभी व्यक्ति वस्तुएं शून्य हैं, तो खाली स्ट्रिंग लौटाएं।LINQ - किसी ऑब्जेक्ट की किसी प्रॉपर्टी का रिटर्निंग मान जो शून्य नहीं है
मेरे सबसे अच्छे प्रयास इस प्रकार है:
string userName = MyObjectList.FirstOrDefault(x => x.Person != null).Person.Name ?? string.Empty;
मुझे लगता है कि मुझे समझ में क्यों यह काम नहीं करता; यदि व्यक्ति मेरी सूची में प्रत्येक ऑब्जेक्ट के लिए शून्य है, तो हमें डिफ़ॉल्ट मान मिलता है, जो शून्य होगा और जब मैं संपत्ति का उपयोग करने का प्रयास करता हूं तो एक शून्य संदर्भ त्रुटि फेंक देगा।
मैं परिणाम प्राप्त कर सकता हूं कि मैं यह जांच कर सकता हूं कि कोई ऑब्जेक्ट शून्य नहीं है और फिर पहले प्राप्त करना है, लेकिन मैं इसे एक LINQ कथन में पूरा करना चाहता हूं। किसी भी इनपुट की सराहना की है, धन्यवाद।
स्वच्छ, एकल LINQ क्वेरी –
आप कर सकते हैं के लिए +1 यदि आप चाहें तो इसे पूरी तरह से LINQ समाधान बनाने के लिए 'DefaultIfEmpty' का भी उपयोग करें। – Servy
@ सर्वी अच्छा बिंदु। मैंने एक डिफ़ॉल्ट IfEmpty समाधान शामिल किया है जो काम करना चाहिए। –