gpt4 book ai didi

.NET - 从 'foreach' 循环内的列表 中删除

转载 作者:行者123 更新时间:2023-12-03 06:15:30 26 4
gpt4 key购买 nike

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

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

丑陋,但应该可以。

最佳答案

您可以向后迭代列表:

for (int i = myList.Count - 1; i >= 0; i--)
{
if (whatever) myList.RemoveAt(i);
}
<小时/>

针对您关于在发现不删除的项目时想要退出的评论,那么仅使用 while 循环将是最好的解决方案。

关于.NET - 从 'foreach' 循环内的列表 <T> 中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/832165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com