.NET - Remove from a List<T> within a 'foreach' loop
问题 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