كيفية استنساخ قائمة (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 {