दिलचस्प पोस्ट
बिटमैप बड़े हेप के साथ रीसायकल सक्षम किया गया गिटहब में फोरिंग बनाम शाखाएं रूक्रिप्ट: निष्पादन स्क्रिप्ट का पथ निर्धारित करें एक ही पंक्ति में उत्पादन पिछले आउटपुट को ओवरराइट कर रहा है? अजगर (2.5) मेटायर कैसे प्राप्त करें। टेम्पलेट के लिए मूल्य वापस करने के लिए कॉल करें? आउटपुट यूनिकोड को कंसोल करने के लिए, विंडोज में सी ++ का उपयोग करना onListItemClick listview के लिए काम नहीं कर रहा है? रनटाइम पर सीडी # में पीडीएफ फाइल बनाना कमांड प्रॉम्प्ट विंडो में क्लिपबोर्ड सामग्री पेस्ट करने के लिए कीबोर्ड शॉर्टकट (Win XP) गीट पुश त्रुटि: चेक आउट की गई शाखा को अपडेट करने से मना कर दिया मैं PHP के मेल फ़ंक्शन के माध्यम से अरबी सामग्री के साथ ईमेल कैसे भेजूं? क्या मैं खिड़की का उपयोग करना चाहिए। Vararyable या var? Jqgrid जमे हुए स्तंभ फ़िल्टर पंक्तियों और फिल्टर शीर्ष के साथ काम क्यों नहीं करता? फ़ायरफ़ॉक्स से jQuery 1.10.2 चेतावनी मुद्दा सीतनिद्रा में होना: LazyInitializationException: प्रॉक्सी प्रारंभ नहीं कर सका

LINQ आंतरिक-बनाम बायां-जुड़ें

एक्सटेंशन सिंटैक्स का उपयोग करना मैं दो सूचियों पर LINQ का उपयोग करके एक बाएं-जुड़ने का प्रयास कर रहा हूं जो मेरे पास है। निम्नलिखित Microsoft मदद से है, लेकिन मैंने इसे संशोधित किया है कि यह दिखाने के लिए कि पालतू जानवरों की सूची में कोई तत्व नहीं है क्या मैं के साथ समाप्त कर रहा हूँ 0 तत्वों की एक सूची है मुझे लगता है कि ऐसा इसलिए है क्योंकि एक आंतरिक-सम्मिलन हो रहा है। मैं क्या समाप्त करना चाहता हूँ 3 तत्वों (3 व्यक्ति ऑब्जेक्ट्स) की एक सूची है, जिसमें लापता तत्वों के लिए भरा रिक्त डेटा है। यानी वाम-जुड़ें क्या यह संभव है?

Person magnus = new Person { Name = "Hedlund, Magnus" }; Person terry = new Person { Name = "Adams, Terry" }; Person charlotte = new Person { Name = "Weiss, Charlotte" }; //Pet barley = new Pet { Name = "Barley", Owner = terry }; //Pet boots = new Pet { Name = "Boots", Owner = terry }; //Pet whiskers = new Pet { Name = "Whiskers", Owner = charlotte }; //Pet daisy = new Pet { Name = "Daisy", Owner = magnus }; List<Person> people = new List<Person> { magnus, terry, charlotte }; //List<Pet> pets = new List<Pet> { barley, boots, whiskers, daisy }; List<Pet> pets = new List<Pet>(); // Create a list of Person-Pet pairs where // each element is an anonymous type that contains a // Pet's name and the name of the Person that owns the Pet. var query = people.Join(pets, person => person, pet => pet.Owner, (person, pet) => new { OwnerName = person.Name, Pet = pet.Name }).ToList(); 

Solutions Collecting From Web of "LINQ आंतरिक-बनाम बायां-जुड़ें"

मुझे लगता है कि यदि आप ग्रुप जोन का उपयोग करने के लिए एक्सटेंशन विधियों का उपयोग करना चाहते हैं

 var query = people.GroupJoin(pets, person => person, pet => pet.Owner, (person, petCollection) => new { OwnerName = person.Name, Pet = PetCollection.Select( p => p.Name ) .DefaultIfEmpty() } ).ToList(); 

आपको चयन अभिव्यक्ति के साथ खेलना पड़ सकता है मुझे यकीन नहीं है कि यह आप चाहते हैं कि आप इस मामले में चाहते हो, जहां आपके पास 1 से कई रिश्ते हैं

मुझे लगता है कि यह LINQ क्वेरी वाक्यविन्यास के साथ थोड़ा आसान है

 var query = (from person in context.People join pet in context.Pets on person equals pet.Owner into tempPets from pets in tempPets.DefaultIfEmpty() select new { OwnerName = person.Name, Pet = pets.Name }) .ToList(); 

आपको एक समूह में जुड़ने वाली वस्तुएं प्राप्त करने की आवश्यकता होती है और फिर डीपीआई लागू करते हैं क्योंकि जेपीून्योन ने कहा:

 Person magnus = new Person { Name = "Hedlund, Magnus" }; Person terry = new Person { Name = "Adams, Terry" }; Person charlotte = new Person { Name = "Weiss, Charlotte" }; Pet barley = new Pet { Name = "Barley", Owner = terry }; List<Person> people = new List<Person> { magnus, terry, charlotte }; List<Pet> pets = new List<Pet>{barley}; var results = from person in people join pet in pets on person.Name equals pet.Owner.Name into ownedPets from ownedPet in ownedPets.DefaultIfEmpty(new Pet()) orderby person.Name select new { OwnerName = person.Name, ownedPet.Name }; foreach (var item in results) { Console.WriteLine( String.Format("{0,-25} has {1}", item.OwnerName, item.Name ) ); } 

आउटपुट:

 Adams, Terry has Barley Hedlund, Magnus has Weiss, Charlotte has 

मैं इस त्रुटि समस्या का सामना करते समय निम्न त्रुटि संदेश:

जुड़ने के खंड में एक अभिव्यक्ति का प्रकार गलत है। कॉलम में 'समूहजॉय' के लिए प्रकार का अनुमान विफल रहा

जब मैंने एक ही गुण नाम का उपयोग किया तो इसका समाधान किया, यह काम किया

(…)

 join enderecoST in db.PessoaEnderecos on new { CD_PESSOA = nf.CD_PESSOA_ST, CD_ENDERECO_PESSOA = nf.CD_ENDERECO_PESSOA_ST } equals new { enderecoST.CD_PESSOA, enderecoST.CD_ENDERECO_PESSOA } into eST 

(…)

यहां एक अच्छा ब्लॉग पोस्ट है जिसे सिर्फ फ़ब्रिस द्वारा लिखा गया है (लिनक्यू एक्शन के लेखक) जो उस प्रश्न में सामग्री को कवर करता है जिसे मैंने पूछा। मैं इसे संदर्भ के लिए यहां रख रहा हूँ क्योंकि प्रश्न के पाठकों को यह उपयोगी मिलेगा।

क्वेरी / वाक्य रचना से LINQ क्वेरी को विधि / ऑपरेटर सिंटैक्स में परिवर्तित करना

LINQ में छोड़ी गई बाएं डिफ़ॉल्ट IfEmpty () विधि के साथ संभव है। मेरे पास आपके केस के लिए सटीक सिंटैक्स नहीं है, हालांकि …

असल में मुझे लगता है कि यदि आप केवल पालतू जानवरों को जाते हैं तो डिलीवरी।

संपादित करें: जब मुझे देर हो चुकी है, तो मुझे जवाब नहीं देना चाहिए …

अगर आपके पास वास्तव में कोई डाटाबेस है, तो यह सबसे आसान तरीका है:

 var lsPetOwners = ( from person in context.People from pets in context.Pets .Where(mypet => mypet.Owner == person.ID) .DefaultIfEmpty() select new { OwnerName = person.Name, Pet = pets.Name } ).ToList();