Skip to main content
Copy một List
Vấn đề:
- Trong C# khi tạo một list mới bằng các
List<T> list = new(otherList) thì các phần tử của list vẫn được tham chiếu đến các phần tử của otherList
Nguyên nhân:
- Trong C# khi sử dụng lệnh
List<T> list = new(otherList) chỉ tạo ra được một shallow copy (copy nông). Các phần tử vẫn được tham chiếu đến một vị trí.
Giải pháp
- Tạo ra một deep copy (copy sâu)
- Sử dụng vòng for duyệt và tạo mới từng phần tử sau đó thêm vào list mới.
- Sử dụng Linq để tạo phần từ mới
List<T> list = otherList.Select(e => new T()).ToList();List<T> list = otherList.ConvertAll(e => new T());
No comments to display
No comments to display