Avatar ·

كيفية استنساخ قائمة (List<T>) في C#: دليل كامل للنسخ

مرحباً بالجميع! أنا مبتدئ في C# وقد واجهت مشكلة أثناء العمل مع القوائم. أحتاج إلى إنشاء نسخة مستقلة من القائمة بحيث لا تؤثر التغييرات في إحدى النسخ على الأخرى. هذا هو الكود الخاص بي: ```csharp List originalList = new List { "apple", "banana", "cherry" }; List clonedList = originalList; // مجرد تعيين بسيط // نعدل النسخة المستنسخة clonedList.Add("date"); Console.WriteLine("Original: " + string.Join(", ", originalList)); // يطبع: apple, banana, cherry, date Console.WriteLine("Cloned: " + string.Join(", ", clonedList)); // يطبع: apple, banana, cherry, date ``` كما ترون، عند التعيين البسيط، يشير `originalList` و `clonedList` إلى نفس الكائن في الذاكرة. تغيير قائمة واحدة يغير الأخرى تلقائياً. لقد جربت طريقة `ToList()`، لكنها لا تساعد أيضاً مع قوائم الأنواع المرجعية: ```csharp public class Person { public string Name { get; set; } } List people = new List { new Person {