यहाँ दो सी # वर्गों ...यह LINQ क्वेरी क्या करती है?
public class Address
{
public string Country;
public string City;
}
public class Traveller
{
public string Name;
public List<Address> TravelRoute;
}
... और डेटा (कहीं भरा) की एक सूची ...
List<Traveller> Travellers;
... और फिर इस LINQ क्वेरी हैं:
var result = from t in Travellers
where t.TravelRoute.Any(a => a.Country == "F")
select t;
foreach (var t in result)
System.Console.WriteLine(t.Name);
मुझे क्वेरी समझ में नहीं आ रहा है: "कोई भी" फ़ंक्शन और "=>" ऑपरेटर क्या करता है?
क्या कोई मुझे बता सकता है कि इस कोड में क्या चल रहा है? धन्यवाद!
तो, क्या इसका मतलब यह है कि यह "लैम्ब्डा अभिव्यक्ति" केवल "नेस्टेड" LINQ क्वेरी के लिए संक्षेप है? केवल कोड लिखने के लिए कुछ और कॉम्पैक्ट? – Slauma
लैम्ब्डा अभिव्यक्ति, इनलाइन अभिव्यक्ति के रूप में भी जाना जाता है, आमतौर पर एक बार के फ़ंक्शन के लिए लिखा जाता है और आमतौर पर अधिक कॉम्पैक्ट होता है। आपको तर्क के लिए एक प्रकार निर्दिष्ट करने की आवश्यकता नहीं है क्योंकि यह इसे कम करेगा। मैंने कहा हाँ, आप इसे एक नेस्टेड LINQ के साथ प्रतिस्थापित कर सकते हैं, लेकिन मुझे यह नहीं कहना है कि LINQ लिखने के लिए मैं एक और LINQ में लिखा था, उसी तरह काम करेगा। –
अधिक सटीक होने के लिए, लैम्ब्डा अभिव्यक्ति एक अभिव्यक्ति वृक्ष में भी अनुवाद कर सकती है जिसका उपयोग LINQ प्रदाता द्वारा SQL कोड की तरह कोड के किसी अन्य भाग में अनुवाद करने के लिए किया जाता है। –