Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में जेनेरिक लिस्ट को क्लोन करना

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 डीप कॉपी:

  • शैलो कॉपी: रेफरेंस टाइप्स के लिए रेफरेंस कॉपी होते हैं (उसी ऑब्जेक्ट को पॉइंट करते हैं)
  • डीप कॉपी: नेस्टेड ऑब्जेक्ट्स भी कॉपी होते हैं
  • स्ट्रिंग्स इम्म्यूटेबल हैं इसलिए शैलो कॉपी सुरक्षित है
  • कस्टम क्लास ऑब्जेक्ट्स के लिए डीप कॉपी के लिए सीरियलाइज़ेशन या मैन्युअल क्लोनिंग चाहिए
  1. - C# में जेनेरिक संग्रह (Generic Collections) क्या हैं?

    C# में जेनेरिक संग्रह में <List>, <SortedList>, आदि शामिल हैं।ListList<T> एक जेनेरिक संग्रह है और ArrayList एक नॉन-जेनेरिक संग्रह है।आइए एक उदाहरण देखें। यहां, लिस्ट में छह तत्व हैं:उदाहरणusing System; using System.Collections.Generic; class Program { static void Main() { // संग्रह

  1. - प्रीकंडीशन्स - Java

    उदाहरणpublic void myFun(List myList){ if (myList == null){ throw new IllegalArgumentException(लिस्ट null है); } if (myList.isEmpty()){ throw new IllegalArgumentException(लिस्ट खाली है); } myFun(myList); }myFun नाम का एक void फ़ंक्शन परिभाषित किया गया है जो ऑब्जेक्

  1. - Python में लिस्ट को क्लोन या कॉपी कैसे करें?

    Python में, असाइनमेंट ऑपरेटर नया ऑब्जेक्ट नहीं बनाता, बल्कि पहले से मौजूद ऑब्जेक्ट को दूसरा नाम देता है। इसे `id()` फंक्शन द्वारा सत्यापित किया जा सकता है। >>> L1 = [1, 2, 3, 4] >>> L2 = L1 >>> id(L1) 185117137928 >>> id(L2) 185117137928 वास्तव में लिस्ट कॉपी करन