2010-10-12 21 views
13

मुझे LINQ और Lambda अभिव्यक्ति के प्रदर्शन के संबंध में एक चर्चा की आवश्यकता है।तुलना: LINQ बनाम LAMBDA अभिव्यक्ति

कौन सा बेहतर है?

+4

आप यहाँ http://stackoverflow.com/ देखने के लिए चाहते हो सकता है प्रश्न/1182922/लिनक्स-एंड-लैम्ब्डा-अभिव्यक्ति-इन-नेट –

उत्तर

34

मुझे लगता है कि आपका मतलब LINQ के बारे में बात करते समय query expression है।

वे समकक्ष हैं। कंपाइलर query expression को संकलित करने से पहले बराबर लैम्ब्डा अभिव्यक्ति में बदलता है, इसलिए जेनरेट आईएल बिल्कुल वही है।

उदाहरण

var result = select s from intarray 
      where s < 5 
      select s + 1; 

बिल्कुल के रूप में

var result = intarray.Where(s => s < 5).Select(s => s+1); 

नोट एक ही है कि अगर आप इस तरह क्वेरी अभिव्यक्ति लिखें:

var result = select s from intarray 
      where s < 5 
      select s; 

यह बदला न गया हो:

var result = intarray.Where(s => s < 5); 

चयन करने के लिए अंतिम कॉल छोड़ा गया है क्योंकि यह अनावश्यक है।

+3

का-कार्यक्षमता-और-प्रदर्शन-प्रदर्शन-मैं-जैसा ही सोचा होगा, लेकिन, इस साइट के अनुसार (http: // ब्लॉग। thijssen.ch/2009/02/linq-vs-lambda-vs-loop-performance-test.html), लैम्ब्डा अभिव्यक्ति तेज़ी से प्रदर्शन करती है। मैंने टेस्ट फ़ंक्शन को एक ऐप में कॉपी किया है, इसका परीक्षण करने के लिए, और यह उस साइट पर निष्कर्षों की पुष्टि की है। –

+1

क्या इसका मतलब केवल लैम्ब्डा अभिव्यक्ति सीखना है? –

+1

'क्वेरी एक्सप्रेशन' विशेष रूप से नए पीपीएल – om471987

4

परावर्तक में त्वरित तुलना शायद चाल चलती है। हालांकि, 'वरीयता' दृष्टिकोण से, मुझे लगता है कि लैम्ब्डा कथन का पालन करना और लिखना आसान है और बोर्ड में उनका उपयोग करें चाहे वह ऑब्जेक्ट्स, एक्सएमएल या जो भी हो।

यदि प्रदर्शन नगण्य है, तो मैं आपके साथ सबसे अच्छा काम करता हूं।

मैं वास्तव में एक छोटे से विषय शुरू LINQ तरीकों जो रुचि का हो सकता को देख:

What's your favourite linq method or 'trick'

चियर्स ..

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