CopyTo() मेथड से लिस्ट क्लोन करना
लिस्ट एक जेनेरिक कलेक्शन है जो समान डेटा टाइप के एलिमेंट्स रखता है।
लिस्ट घोषित करें और एलिमेंट्स जोड़ें:
List<string> myList = new List<string>();
myList.Add("Programming");
myList.Add("Web Dev");
myList.Add("Database");
नया ऐरे बनाएं और लिस्ट को इसमें क्लोन करें:
string[] arr = new string[10]; myList.CopyTo(arr);
पूर्ण कोड उदाहरण
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
List<string> myList = new List<string>();
myList.Add("Programming");
myList.Add("Web Dev");
myList.Add("Database");
Console.WriteLine("First list...");
foreach (string value in myList) {
Console.WriteLine(value);
}
string[] arr = new string[10];
myList.CopyTo(arr);
Console.WriteLine("After cloning...");
foreach (string value in arr) {
Console.WriteLine(value);
}
}
}
आउटपुट
First list... Programming Web Dev Database After cloning... Programming Web Dev Database
अन्य क्लोनिंग तरीके:
// 1. ToArray() - सबसे सरल (नया ऐरे लौटाता है) string[] arr = myList.ToArray(); // 2. कंस्ट्रक्टर से नई लिस्ट (शैलो कॉपी) var newList = new List<string>(myList); // 3. LINQ var cloned = myList.Select(x => x).ToList(); // 4. Json सीरियलाइज़ेशन (डीप कॉपी के लिए) var json = JsonSerializer.Serialize(myList); var deepClone = JsonSerializer.Deserialize<List<string>>(json);
महत्वपूर्ण - शैलो vs डीप कॉपी:
- शैलो कॉपी: रेफरेंस टाइप्स के लिए रेफरेंस कॉपी होते हैं (उसी ऑब्जेक्ट को पॉइंट करते हैं)
- डीप कॉपी: नेस्टेड ऑब्जेक्ट्स भी कॉपी होते हैं
- स्ट्रिंग्स इम्म्यूटेबल हैं इसलिए शैलो कॉपी सुरक्षित है
- कस्टम क्लास ऑब्जेक्ट्स के लिए डीप कॉपी के लिए सीरियलाइज़ेशन या मैन्युअल क्लोनिंग चाहिए