相关疑难解决方法(0)

.NET - 从'foreach'循环中的List <T>中删除

我有我希望看起来像这样的代码:

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
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为当您foreach在该列表上的循环内时,无法从列表中删除:

有没有一种解决问题的常用方法?

如果需要,我可以切换到不同的类型.

选项2:

List<Type> Os;

...

while (Os.Count != 0)
     if (Os[0].cond)
         return;
     else
         Os.RemoveAt(0);

... // Other code
Run Code Online (Sandbox Code Playgroud)

丑陋,但它应该工作.

.net foreach remove-method

46
推荐指数
8
解决办法
6万
查看次数

标签 统计

.net ×1

foreach ×1

remove-method ×1