2010-09-24 32 views
9

मेरे पास विभिन्न प्रकार के ऑब्जेक्ट्स के दो List<T> हैं (यानी, List<Apple> और List<Tiger>)। अब मैं एक नई (अज्ञात) प्रकार की वस्तुओं को उत्पन्न करने के लिए 2 ऑब्जेक्ट्स से गुणों को गठबंधन करना चाहता हूं।नए प्रकार के ऑब्जेक्ट्स उत्पन्न करने के लिए LINQ का उपयोग कैसे करें

मैं LINQ के साथ कैसे प्राप्त करूं?

+0

क्या एप्पल और triger – anishMarokey

उत्तर

15

तो क्या आप बाघ सूची के पहले तत्व के साथ सेब सूची के पहले तत्व को जोड़ना चाहते हैं?

तो, और आप .NET 4 का उपयोग कर रहे हैं, तो आप Zip का उपयोग कर सकते हैं:

var results = apples.Zip(tigers, (apple, tiger) => 
        new { apple.Colour, tiger.StripeCount }); 

आप .NET 4 उपयोग नहीं कर रहे हैं, तो आप MoreLINQ में Zip के बारे में हमारी कार्यान्वयन इस्तेमाल कर सकते हैं।

यदि आप किसी अन्य तरीके से बाघों के साथ सेब मिलान करना चाहते थे, तो आप शायद का उपयोग करना चाहते एक में शामिल होने:

var results = from apple in apples 
       join tiger in tigers on apple.Name equals tiger.Name 
       select new { apple.Color, tiger.StripeCount }; 
+0

असल में वहाँ गुण हैं, मैं पार में शामिल होने की खोज कर रहा हूँ सुविधा। लेकिन अभी भी आपकी मदद धन्यवाद। – Ricky

+0

@Ricky: यदि आप क्रॉस जॉइन के बजाय एक शामिल क्लॉज का उपयोग करने में सक्षम हैं, तो यह अधिक कुशल होगा। –

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