Nella mia applicazione, _collection è una lista da cui ho bisogno di rimuovere tutti gli oggetti Utente che non corrispondono ai criteri .Qual è il modo più semplice per foreach attraverso un elenco <T> rimozione di oggetti indesiderati?
Tuttavia, il codice seguente ottiene un invalido errore operazione nella sua seconda iterazione poiché il _collection stessa è stata modificata:
foreach (User user in _collection)
{
if (!user.IsApproved())
{
_collection.Remove(user);
}
}
ho potuto creare un'altra raccolta List e copiarli avanti e indietro, ma poi ho avere il problema dei tipi di riferimento non clonati, ecc.
C'è un modo per fare quanto sopra più elegantemente della copia di _collection su un'altra variabile di lista?
o '_collection.FindAll (user => user.IsApproved());' per eliminare negazioni. –
_collection.FindAll restituirà ** un'altra ** raccolta. È molto diverso dal cambiare la collezione iniziale (potrebbero esserci casi in cui alcuni altri oggetti contengono riferimenti alla stessa lista e ne hai bisogno cambiando, invece di crearne un'altra). –