2012-11-20 17 views
12

एक सूची के तत्वों को दूसरे में जोड़ने का सबसे आसान तरीका क्या है?एक सूची से दूसरे में तत्व जोड़ें C#

लिस्ट ए जो एक्स आइटम शामिल हैं सूची B जो y आइटम शामिल हैं:

उदाहरण के लिए, मैं दो सूचियों की है।

मैं बी से ए के तत्व जोड़ना चाहता हूं ताकि अब एक्स + वाई आइटम हो। मुझे पता है कि यह एक पाश का उपयोग कर किया जा सकता है लेकिन क्या इसके लिए एक अंतर्निहित विधि है? या कोई अन्य तकनीक?

उत्तर

25

आपका प्रश्न List.AddRange विधि का वर्णन करता है, जो इसकी तर्क के सभी तत्वों को सूची वस्तु में कॉपी करता है जिस पर इसे कहा जाता है।

उदाहरण के लिए, टुकड़ा

List<int> listA = Enumerable.Range(0, 10).ToList(); 
List<int> listB = Enumerable.Range(11, 10).ToList(); 
Console.WriteLine("Old listA: [{0}]", string.Join(", ", listA)); 
Console.WriteLine("Old listB: [{0}]", string.Join(", ", listB)); 
listA.AddRange(listB); 
Console.WriteLine("New listA: [{0}]", string.Join(", ", listA)); 

प्रिंट

Old listA: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
Old listB: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 
New listA: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 

दिखा रहा है कि सभी listB के तत्वों AddRange कॉल में listA में जोड़ा गया।

5

दो सूचियों में शामिल होने के लिए, आपको

listA.AddRange(listB); // listA will contain x+y items 

या

// listC contains x+y items, listA and listB are unchanged. 
var listC = listA.Concat(listB); 

आप बाद के इस्तेमाल कर सकते हैं बजाय listA पुन: असाइन करने के लिए क्या कर सकते हैं:

listA = listA.Concat(listB).ToList(); 

लेकिन कोई नहीं है AddRange से अधिक विशेष लाभ यदि आप ओ में से एक को संशोधित करने के ठीक हैं पहली जगह में रेजिनल सूचियां।

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