में लैम्ब्डा अभिव्यक्ति परिवर्तित सी # से:गहराई में एक अभिव्यक्ति पेड़
नहीं सभी लैम्ब्डा भाव अभिव्यक्ति के पेड़ में बदला जा सकता। आप एक लैम्बडा को कथन के ब्लॉक (यहां तक कि केवल एक रिटर्न स्टेटमेंट) के साथ एक एक्सप्रेसन पेड़ में परिवर्तित नहीं कर सकते हैं -> इसे रूप में होना चाहिए जो केवल एक अभिव्यक्ति का मूल्यांकन करता है।
के बाद से Linq करने वाली वस्तु बयान अभिव्यक्ति पेड़ वस्तुओं में बदल नहीं है, लैम्ब्डा Linq करने वाली वस्तु ऑपरेटरों के साथ इस्तेमाल किया भाव बयान के एक ब्लॉक शामिल कर सकते हैं
string[] count = { "one ", "two ", "three ", "four ", "five ", "six " };
IEnumerable<int> result = count.Select(item =>
{
Console.WriteLine(item);
return item.Length;
});
foreach (int i in result);
उत्पादन:
one two three four five six
मैं अभी तक सीखने शुरू नहीं किया है LINQ करने के लिए-SQL या LINQ करने के लिए-संस्थाओं, लेकिन मैं LINQ बयान है कि IQueryable<T>
पर काम के साथ प्रयोग किया ही कभी एक भी अभिव्यक्ति शामिल कर सकते हैं लैम्ब्डा भाव मान , पुनर्स्थापन के कारण कि केवल एक अभिव्यक्ति को अभिव्यक्ति वृक्ष में परिवर्तित किया जा सकता है?
आप
अब, पृथ्वी पर क्या होगा * आप ** सी # में गहराई ** में उल्लिखित कुछ के बारे में जानते हैं? ओह कोई बात नहीं। –
आपको बहुत धन्यवाद – AspOnMyNet
@ जोन: यह अचानक मेरे सामने हुआ कि http://stackoverflow.com/questions/8405423/do-at-compile-time-linq-to-objects- पर यह प्रश्न कितना संबंधित है। कथन-भी-अनुवाद-में-अभिव्यक्ति * विंक विंक * – AspOnMyNet