मैं How to: Combin Data with Linq by using joins में उदाहरणों का उल्लेख करता हूं। हमारे पास दो सूचियां हैं जिनमें पहले व्यक्ति वस्तुएं हैं (प्रथम- और अंतिम नाम)। दूसरी सूची में पालतू वस्तुओं (नाम) हैं जो एक व्यक्ति वस्तु (पालतू मालिक) रखती हैं। एक व्यक्ति के पास = = 0 पालतू जानवर हो सकते हैं।क्या लिंकक अनावश्यकता पैदा करता है?
क्या अब happend मैं प्रदर्शन समूह
में शामिल होनेDim result1 = From pers in people
Group Join pet in pets
on pers Equals pet.Owner
Into PetList = Group
LINQPad मुझे परिणाम से पता चलता है:
यह Linq तरह अतिरिक्तताओं का एक बहुत का निर्माण मेरे लिए लग रहा है (मैं लेकिन यहां गलत हो सकता है!)। पहला परिणाम ऑब्जेक्ट व्यक्ति को तीन बार ऑब्जेक्ट रखेगा। लिंकक नोबी के रूप में मेरे लिए यहां दो प्रश्न उठते हैं (लेकिन शायद मैं आउटपुट को सही तरीके से नहीं पढ़ता):
- क्या व्यक्ति ऑब्जेक्ट संदर्भ हैं? दुर्भाग्य से मुझे इसके बारे में कुछ भी नहीं मिला।
- उदाहरण क्वेरी ऊपर उल्लेख के बाद
Select pers.FirstName , pers.LastName, PetName = If(pet is Nothing, String.Empty, pet.Name)
के साथ जारी है हम PetList में व्यक्ति वस्तु के बारे में सभी जानकारी है, तो क्यों न सिर्फ इस वस्तु क्वेरी? मेरी राय में हमें अब पर्स ऑब्जेक्ट की आवश्यकता नहीं है।
मुझे लगता है कि यहां प्रमुख तथ्य हैं linq स्थगित निष्पादन का उपयोग करता है और इसे एक प्रारूप में संकलित किया जाना चाहिए जिसका अर्थ है कि इन अनावश्यकताएं (जितनी संभव हो सके) – Sayse