Khi tôi sửa đổi bộ sưu tập tôi đã lặp lại thông qua với foreach
, tôi có ngoại lệ. Vì vậy, tôi chỉ tò mò về cách foreach
(hoặc thời gian chạy) phát hiện điều đó. Có thể làm như vậy với một đối tượng chung?Làm cách nào để biết được bộ sưu tập được lặp lại đã được sửa đổi?
10
A
Trả lời
15
Bản thân bộ sưu tập phải phát hiện ra nó. Trong bộ sưu tập thư viện chuẩn, điều này đạt được bằng cách có số phiên bản nội bộ được sửa đổi bởi mỗi thao tác và được kiểm tra bởi trình lặp trên mỗi lần lặp (tức là mỗi lần bạn gọi MoveNext
nó sẽ kiểm tra số phiên bản giống như khi trình vòng lặp đã được tạo).
Các vấn đề liên quan
- 1. Visual Studio Crashes! - Bộ sưu tập đã được sửa đổi sau khi điều tra được instantiated
- 2. Thực tiễn tốt nhất để tránh InvalidOperationException: Bộ sưu tập đã được sửa đổi?
- 3. Lạ "Bộ sưu tập đã được sửa đổi sau khi điều tra được khởi tạo" ngoại lệ
- 4. C# ngăn ngừa Bộ sưu tập đã được sửa đổi ngoại trừ
- 5. Bộ sưu tập đã được sửa đổi, hoạt động liệt kê không thể thực hiện
- 6. Bộ sưu tập được đồng bộ hóa
- 7. Làm cách nào để biết phiên bản mô hình django đã được sửa đổi?
- 8. Java: Lặp lại một tập trong khi nội dung của bộ đang được sửa đổi
- 9. backbone.js lặp lại một bộ sưu tập
- 10. Bộ sưu tập chung được sưu tầm
- 11. Tại sao tôi nhận được "Bộ sưu tập đã được sửa đổi; hoạt động điều tra có thể không thực thi" khi không sửa đổi bộ sưu tập được liệt kê?
- 12. Làm cách nào để lặp lại bộ sưu tập .Net IList theo thứ tự ngược lại?
- 13. Bộ sưu tập sửa đổi mục
- 14. NHibernate: Bộ sưu tập đã được sửa đổi; hoạt động điều tra có thể không thực hiện
- 15. Thành ngữ cho phép lặp lại theo cặp thông qua bộ sưu tập được sắp xếp
- 16. Bộ sưu tập khung thực thể đã được sửa đổi; hoạt động điều tra có thể không thực thi
- 17. Có ai đã tìm thấy Bộ sưu tập rác được điều chỉnh để hữu ích không?
- 18. Làm cách nào để cho phép lặp qua bộ sưu tập riêng tư nhưng không sửa đổi?
- 19. Làm cách nào để tải một tập hợp bản đồ Hibernate thành một bộ không thể sửa đổi được?
- 20. Làm cách nào để biết liệu một số IE2umercó thể thực hiện được hoãn lại không?
- 21. Làm cách nào để biết máy tính đã được khởi động lại chưa?
- 22. Sửa đổi bộ sưu tập khi sử dụng vòng lặp foreach trong C#
- 23. Tôi làm cách nào để có được bộ sưu tập được đánh máy mạnh mẽ từ BlazeDS?
- 24. Tôi làm cách nào để có được bộ sưu tập tất cả các màu trong System.Drawing.Color?
- 25. phát hiện khi một bộ sưu tập xương sống đã được tìm nạp (Backbone 1.0.0)
- 26. Làm cách nào để viết lại văn bản được sửa lại?
- 27. Sửa đổi Bộ sưu tập giản đồ SQL Server
- 28. Làm thế nào để có được một bộ sưu tập MongoDB được tạo bằng trình điều khiển MongoDB C#?
- 29. Tại sao bộ khởi tạo bộ sưu tập về chuyển nhượng lại không được phép?
- 30. Bộ sưu tập không có thứ tự cho các đối tượng không thể sửa được?
Tôi không chắc chắn về C#, nhưng trong Java thế giới foreach xây dựng chỉ là một cú pháp cú pháp để bình thường iterator ... Vì vậy nếu bộ sưu tập được sửa đổi trong quá trình lặp lại, ConcurrentModificationException được ném. Có vẻ như đây chính xác là trường hợp ở đây. –