I have code that I want to look like this:
List<Type> Os;
...
foreach (Type o in Os)
    if (o.cond)
        return;  // Quitting early is important for my case!
    else
        Os.Remove(o);
... // Other code
This doesn't work, because you cannot remove from the list when you are inside a foreach loop over that list:
Is there a common way to solve the problem?
I can switch to a different type if needed.
Option 2:
List<Type> Os;
...
while (Os.Count != 0)
     if (Os[0].cond)
         return;
     else
         Os.RemoveAt(0);
... // Other code
Ugly, but it should work.
 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    