linq iteration need for single row? -
जब मैं निम्न कोड बनाता हूं
खरगोश [] rbt = new rabbit [] { नया खरगोश {नाम = "जॉबबी", वनस्पति = नया सब्जी (VegiName = "गाजर"}}, नया खरगोश {नाम = "शौक", वनस्पति = नया वनस्पति (वेगीनाम = "बीट्रोॉट"}}}; Var s = rbt में जहां बीटी। विटेबल.वेगीनाम। कॉम्पेरेटो ("गाजर") == 0 बीटी चुनें; विदेशी (वीर वी में) {Console.WriteLine ("{0} {1}", v.Vegetable.VegiName, v.Name); }
मेरी क्वेरी केवल एक पंक्ति रिटर्न करती है, तो मुझे आगे की आवृत्ति की आवश्यकता क्यों है? मैं
कंसोल का उपयोग नहीं कर सकता। WrightLine ("{0} {1}", s.Vegetable.VegiName, s.Name); सीधे?
कैसे जानने के लिए संकलक का मतलब है कि आपकी क्वेरी केवल एक ही पंक्ति वापस कर सकती है? मान लीजिए कि आपने एक और गाजर को शामिल करने के लिए अपना डेटा बदल दिया है - या बिल्कुल गाजर नहीं है - आप क्या करने की उम्मीद करेंगे।
यदि आपको निश्चित रूप से कोई भी परिणाम प्राप्त करना चाहिए, तो एकल
को कॉल करें यह। यदि आपको कई परिणाम मिलते हैं, तो पहले
पर कॉल करें यदि आपको कई परिणाम मिलें या कोई भी न हो, तो फर्स्टऑरिफॉल्ट
पर कॉल करें यदि आपको शून्य या एक परिणाम मिल सकता है, तो SingleOrDefault
पर कॉल करें। उदाहरण के लिए, पहले मामले के लिए:
var s = rbt में बीटी में जहां bt.Vegetable.VegiName.CompareTo ("गाजर") == 0 बीटी चुनें; Var veg = s.Single (); Console.WriteLine ( "{0} {1}", veg.Vegetable.VegiName, veg.Name);
या वैकल्पिक रूप से:
var veg = rbt.Where (bt = & gt; bt.Vegetable.VegiName.CompareTo ("गाजर") == 0 ) ।एक(); Console.WriteLine ( "{0} {1}", veg.Vegetable.VegiName, veg.Name);
Comments
Post a Comment