foreach(BruteforceEntry be in Entries.Values)
{
if (be.AddedTimeRemove <= now)
Entries.Remove(be.IPAddress);
else if (be.Unbantime <= now && be.Unbantime.Day == DateTime.Now.Day)
Entries.Remove(be.IPAddress);
}
Một ngoại lệ được ném:Sửa đổi một từ điển mà tôi đang lặp lại qua
Bộ sưu tập đã được sửa đổi; hoạt động điều tra có thể không thực hiện được.
Vì lý do nào đó, nó không còn nữa.
Tôi biết bạn không thể xóa nội dung nào đó, trong khi lặp lại theo cách này. Câu hỏi của tôi là: Làm thế nào để giải quyết nó?
Cảm ơn rất nhiều. Tôi có 1 câu hỏi, bạn có thích điều này nhiều hơn simly iterating thông qua một bản sao, bằng cách sử dụng. ToList() vì đó là một chỉnh sửa nhỏ hơn. – Basser
@Basser: Vâng, có một điều có khả năng có dấu chân bộ nhớ nhỏ hơn. Nó cũng chỉ lặp lại toàn bộ bộ sưu tập một lần - giải pháp hiện tại của bạn lặp lại một lần để xây dựng danh sách và sau đó nó lặp lại trong danh sách đó. Đừng làm cho tôi sai - nó sẽ hoạt động ... Tôi chỉ thích cách tiếp cận này. –
Tôi vừa được thông báo rằng một người dùng SO hàng đầu đã trả lời câu hỏi của tôi, đó là lý do tại sao tôi nghĩ tôi sẽ hỏi bạn! Tôi đoán tôi sẽ sử dụng phương pháp này, như bạn là chính xác! Cảm ơn một lần nữa. Tôi chưa quá tốt với các bộ sưu tập, vẫn đang học hỏi. – Basser