Tôi có một số vấn đề lạ với Danh sách trong ứng dụng C# của tôi. Nó phải là một sai lầm phân bổ hoặc tôi đang làm điều gì đó sai (tôi là trung bình C# phát triển). Hãy để tôi đưa ra một ví dụ gần dòng của tôi:Vấn đề C# "vui" với Danh sách <String[]>
List<String[]> MyPrimaryList = new List<String[]>();
List<String[]> MySecondaryList = new List<String[]>();
String[] array;
String arrayList = "one,two,three,four,five";
array = arrayList.Split(',');
MyPrimaryList.Add(array);
MySecondaryList.Add(array);
MyPrimaryList[0][0] += "half";
Vì vậy, bây giờ tôi mong chờ giá trị đầu tiên trong mảng đầu tiên trong MyPrimaryList là "onehalf" và "một" trong MySecondaryList. Nhưng vấn đề/vấn đề của tôi là cả hai danh sách đều được cập nhật bằng "onehalf" làm giá trị đầu tiên trong mảng đầu tiên trong cả hai danh sách.
Bạn có giải thích đúng không? :)
THANKS !!
Bạn đang thêm cùng một mảng để cả hai danh sách, vì vậy cả hai đều trỏ vào phần tử mảng mà bạn đang thay đổi. –
Bạn đang thêm cùng một đối tượng vào cả hai danh sách - nói cách khác chỉ có một 'mảng' bạn không tạo bản sao ở bất kỳ đâu ... – tpeczek