public void RemovePickups(IEnumerable <Pickup> pickups) { foreach (Pickup pickup in pickups) { if (pickup.Amount == 0) { continue; } Pickup existing = Pickups.FirstOrDefault(p => p.Id == pickup.Id); if (existing == null) { continue; } existing.Amount -= pickup.Amount; } }