我必须从数据表中删除一些行。我听说在迭代过程中更改集合是不合适的。因此,我应该首先遍历数据表并在列表中添加所有行,然后遍历列表并标记,而不是先检查一行是否满足删除要求然后将其标记为已删除的for循环。删除行。是什么原因造成的?我有什么选择(而不是使用我指的是行列表)?
如果使用简单for循环,则可以从集合中删除元素。
for
看一下这个例子:
var l = new List<int>(); l.Add(0); l.Add(1); l.Add(2); l.Add(3); l.Add(4); l.Add(5); l.Add(6); for (int i = 0; i < l.Count; i++) { if (l[i] % 2 == 0) { l.RemoveAt(i); i--; } } foreach (var i in l) { Console.WriteLine(i); }