我有我想看起来像这样的代码:
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
这不起作用,因为当您在该列表的foreach
循环内时,您无法从列表中删除:
有没有解决问题的通用方法?
如果需要,我可以切换到其他类型。
选项 2:
List<Type> Os;
...
while (Os.Count != 0)
if (Os[0].cond)
return;
else
Os.RemoveAt(0);
... // Other code
丑陋,但它应该工作。