我有一个数字列表,我想删除所有偶数.我认为我的代码是正确的:
System.Collections.Generic.List<int> list = ...
foreach (int i in list)
{
if (i % 2 == 0)
list.Remove(i);
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,我得到一个例外.我究竟做错了什么?
Gab*_*abe 10
你不能在一个foreach循环中修改一个集合,也就是说,你不能从一个list循环中迭代的项目中删除一个项目foreach.
而不是foreach循环,只需使用这一行代码:
list.RemoveAll(i => i % 2 == 0);
Run Code Online (Sandbox Code Playgroud)