相关疑难解决方法(0)

在'foreach'循环中修改列表的最佳方法是什么?

C#/ .NET 4.0中的一个新功能是,您可以在foreach不获取异常的情况下更改您的枚举.请参阅Paul Jackson的博客文章"并发的有趣副作用:在枚举时从集合中删除项目"以获取有关此更改的信息.

执行以下操作的最佳方法是什么?

foreach(var item in Enumerable)
{
    foreach(var item2 in item.Enumerable)
    {
        item.Add(new item2)
    }
}
Run Code Online (Sandbox Code Playgroud)

通常我使用IList一个缓存/缓冲区直到结束foreach,但是有更好的方法吗?

.net c# enumeration list enumerable

68
推荐指数
5
解决办法
10万
查看次数

.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 ×2

c# ×1

enumerable ×1

enumeration ×1

foreach ×1

list ×1

remove-method ×1