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);
}
È stata generata un'eccezione:Modificare un dizionario che sto scorrendo
Collection è stato modificato; l'operazione di enumerazione potrebbe non essere eseguita.
Per qualche motivo, non lo è più.
So che non è possibile rimuovere qualcosa, mentre iterando attraverso di essa in questo modo. La mia domanda è: come risolverlo?
Grazie mille. Ho 1 domanda, ti piace questo più che semplicemente iterando attraverso una copia, usando .ToList() poiché si tratta di una modifica più piccola. – Basser
@Basser: Beh, per prima cosa è probabile che abbia un ingombro di memoria inferiore. Sta anche solo iterando sull'intera collezione una volta: la tua soluzione corrente esegue una volta una volta l'iterazione della lista, quindi itera su quella lista. Non fraintendermi - funzionerà ... Preferisco questo approccio. –
beh, mi hanno appena detto che un utente SO top ha risposto alla mia domanda, ecco perché pensavo di chiederti! Immagino che userò questo metodo, dato che sei corretto! Grazie ancora. Non sono ancora molto bravo con le raccolte, sto ancora imparando. – Basser