Làm thế nào tôi có thể sao chép đối tượng từ điển bằng giá trị trong C#Sao chép từ điển theo giá trị
Trả lời
Tạo mới Dictionary
đi qua các từ điển nguồn trong các nhà xây dựng (tất nhiên, điều này sẽ không sao chép các đối tượng có trong từ điển nếu họ là các loại tài liệu tham khảo):
var copied = new Dictionary<KeyType, ValueType>(originalDictionary);
Không có phương pháp nội tại để làm điều đó. Bạn sẽ phải làm điều đó bằng tay.
Bước đầu tiên là quyết định mức độ sâu bạn muốn bản sao ghép nối. Bạn có muốn đối tượng mục nhập từ điển riêng biệt giữ tham chiếu đến các khóa chung & giá trị hay bạn muốn sao chép mọi thứ. Nếu sau này, họ sẽ cần phải thực hiện ICloneable để tạo ra một phương pháp mục đích chung.
Cảnh báo! Chỉ vì một lớp thực hiện 'ICloneable' không có nghĩa là 'Clone' thực hiện một bản sao sâu. – jason
Using System.Linq;
Dictionary<int, string> dict2 = dict1.ToDictionary(k => k.Key, k => k.Value.ToString());
Điều này sẽ tạo bản sao giống hệt của từ điển theo giá trị (không phải ref), vì vậy bạn có thể hoạt động trên một từ điển mà không thay đổi cài đặt khác.
Đóng góp luôn được chào đón, nhưng các câu trả lời mới nên thêm thứ gì đó * đáng kể * trên các câu trả lời trước đó. Cho rằng câu hỏi này đã được trả lời .. vài năm trước, bạn nên suy nghĩ xem liệu nó có đáng sống lại chỉ để gửi mã được tạo bởi một dịch giả mã trực tuyến ;-) – Leigh
Câu trả lời ban đầu của tôi là công việc của riêng tôi, tuy nhiên nó được viết bằng hình ảnh căn bản. Tôi chỉ đơn giản là tham chiếu trình chuyển đổi mã vì đây là một vấn đề đơn giản mà bất cứ ai cũng có thể làm. Giống như, "Hãy để tôi google cho bạn." Bây giờ, về tầm quan trọng. LINQ hoạt động tốt hơn trong mọi tình huống. Câu trả lời của tôi vượt trội so với câu trả lời ban đầu. Tôi đã xem qua bài đăng này sau nhiều năm, và câu trả lời ban đầu là không thỏa đáng cho tính chuyên nghiệp mà công ty tôi mong đợi. Tôi đã đăng câu trả lời để có thể giúp ai đó trong tương lai. Vì vậy, họ không phải làm điều gì đó theo cách thức hoạt động kém – Aaron
Tôi không cố gắng cho bạn một thời gian khó khăn, nhưng thẳng thắn tham chiếu một bộ chuyển đổi mã đã làm cho âm thanh như bạn không quen với ngôn ngữ và đang đăng cái gì đó chưa được thử. Đó có thể không phải là trường hợp nào cả, nhưng đó là nhận thức. Re: * LINQ hoạt động tốt hơn trong mọi tình huống. Re: * Câu trả lời của tôi vượt trội so với câu trả lời gốc * Nếu đó là câu trả lời hay hơn, vui lòng cập nhật câu trả lời của bạn để cho biết lý do. – Leigh
- 1. C# Sao chép mảng theo giá trị
- 2. Sắp xếp từ điển theo giá trị, sau đó nhập
- 3. Làm cách nào để lọc từ điển theo giá trị?
- 4. Sắp xếp NSArray của từ điển theo giá trị của một khóa trong từ điển
- 5. Truy cập giá trị từ điển theo giá trị đối tượng tùy chỉnh bằng Python?
- 6. Sửa đổi giá trị từ điển C#
- 7. YAML: từ điển có giá trị rỗng
- 8. Bản đồ Python() giá trị từ điển
- 9. kiểm tra giá trị boolean từ điển.
- 10. Từ điển C#, 2 Giá trị
- 11. Viết bản sao sâu - sao chép giá trị con trỏ
- 12. Sao chép các giá trị khóa từ NameValueCollection sang Generic Dictionary
- 13. Sắp xếp theo từ điển?
- 14. Sao chép danh sách các đối tượng theo giá trị trong Java
- 15. Làm cách nào để sao chép bảng Lua theo giá trị?
- 16. Tại sao tôi không thể nhập từ điển của một loại giá trị vào từ điển của một loại giá trị khác khi các loại giá trị có thể được truyền từ một loại giá trị khác?
- 17. constructor sao chép rõ ràng hoặc tham số ngầm theo giá trị
- 18. Lập bản đồ các giá trị trong từ điển python
- 19. Tính nhất quán khóa-giá trị trong từ điển python
- 20. Làm cách nào để lặp lại từ điển Python, được sắp xếp theo giá trị?
- 21. python, chuyển từ điển sang danh sách được sắp xếp theo giá trị thay vì khóa
- 22. Python: Cách sắp xếp danh sách từ điển theo một vài giá trị?
- 23. Sắp xếp một từ điển theo giá trị, sau đó bằng phím
- 24. C# Lặp lại từ điển được sắp xếp theo giá trị
- 25. Làm thế nào để sắp xếp một từ điển Python theo giá trị?
- 26. In khóa giá trị lớn nhất trong từ điển theo cách pythonic
- 27. Cách nhận vật phẩm từ điển theo giá trị của bất động sản
- 28. Tạo thành phần sao chép các giá trị trường từ một thành phần khác
- 29. Lấy khóa từ điển bằng cách sử dụng giá trị từ điển
- 30. Sắp xếp từ điển Python dựa trên giá trị từ điển lồng nhau
Bạn có nghĩa là bản sao chép sâu (tức là sao chép tất cả các đối tượng trong từ điển) không? – Paolo