抛出此例外的问题:
System.InvalidOperationException:'收集已修改; 枚举操作可能无法执行。'
foreach(var string in list)
{ if condition true;
remove element from list;
work for remaining list items; // Exception
你们中有谁有解决这个问题的方法吗?
不想回答如下:
将项目移动到新列表中,然后一起删除所有项目。 用于或其他东西
虚拟代码:
public List<Tuple<int, string, string>> OpM(List<Tuple<int, string, string>> tuple)
{
foreach (var v in tuple)
{
cal = (swl * 100) / iwl;
if (cal <= sf)
{
st = st + " " + v.Item3;
Console.WriteLine("Added: {0}", st);
tuple.Remove(v);
}
else {continue;}
}
}
return tuple;
}
非常感谢你!我得到了答案。
foreach (var v in tuple.ToList())
{ tuple.Remove(v); }
但我也想知道如何使用这两种方式:
1- List.Distinct()
2- LINQ: list = list.Where(a => !condition);