LINQ दो अलग-अलग तरीकों से लिखा जा सकता है।
var query = from x in source
where condition
select x.Property
और अन्य LINQ का विस्तार तरीकों का उपयोग करके है:
एक का उपयोग कर LINQ कथात्मक क्वेरी सिंटैक्स एक प्रश्न लिख कर है
var query = source.Where(condition).Select(x => x.Property);
दोनों प्रश्नों समान कर रहे हैं और एक ही परिणाम का उत्पादन करेगा (अच्छी तरह से , इस अति-सरलीकृत उदाहरण में संकलक त्रुटि, लेकिन यह विचार है कि गणना करता है :-))
सी # कंपाइलर क्वेरी कॉल में क्वेरी का अनुवाद करता है।
इसका मतलब है कि जो भी आप एक प्रश्न के रूप में लिखते हैं उसे विधि श्रृंखलाओं का उपयोग करके भी लिखा जा सकता है। कृपया ध्यान दें, हालांकि, विपरीत झूठा है - कुछ प्रश्न केवल लिंक के विस्तार विधियों का उपयोग करके लिखे जा सकते हैं।
आगे पढ़ने के लिए, here's what Microsoft have to say about it.
नोट इस के साथ दूसरा पैराग्राफ शुरू होता है:
क्वेरी सिंटैक्स और विधि वाक्य रचना शब्दार्थ समान हैं, लेकिन बहुत से लोगों को क्वेरी सिंटैक्स सरल और पढ़ने के लिए आसान लगता है।
btw, अगर यह पहले से ही स्पष्ट was'nt, कारण यह है कि System.Linq
अनिवार्य है के लिए विधि चेनिंग वाक्य रचना इसलिए भी कि LINQ विस्तार तरीकों इस नाम स्थान से संबंधित है।
स्रोत
2017-09-06 08:50:16
यह अभी भी LINQ है, बस "क्वेरी वाक्यविन्यास" नहीं है। – Kobi
@ कोबी धन्यवाद! – MaxPower
लिंक केवल विधियों का एक समूह है जो क्वेरी-आधारित भाषा जैसे SQL के समान आइटमों के संग्रह पर काम करता है। दोनों, क्वेरी सिंटैक्स और आपके द्वारा प्रदान की जाने वाली विधि-श्रृंखला वास्तव में उस नामस्थान से linq-विधियां हैं, वे केवल वाक्यविन्यास में भिन्न हैं, व्यवहार में नहीं। – HimBromBeere