Ho il seguente metodo, desidero rimuovere gli elementi dalla mia raccolta che corrispondono all'id del prodotto. Sembra abbastanza semplice, ma ho un'eccezione. Fondamentalmente la mia collezione sta andando fuori sincrono. Quindi qual è il modo migliore per rimuovere un oggetto da una collezione.rimozione di articoli da un elenco generico <t>
public void RemoveOrderItem(Model.Order currentOrder, int productId)
{
foreach (var orderItem in currentOrder.OrderItems)
{
if (orderItem.Product.Id == productId)
{
currentOrder.OrderItems.Remove(orderItem);
}
}
}
Dettagli eccezione: System.InvalidOperationException: Collection è stato modificato; operazione di enumerazione non può essere eseguita
grazie a conrad, stranamente non riesco a far funzionare la lamda. Non riconosce la parte "x.Product.Id". Stranamente cos il seguente funziona var query = da x in currentOrder.OrderItems dove x.Product.Id == productId select x; Il tipo di raccolta è ISet. – frosty
Ok, ho risposto alla mia domanda :) Ho cambiato questa to List –
frosty