小编典典

如何在C#中遍历可枚举集合时修改或删除项目

c#

我必须从数据表中删除一些行。我听说在迭代过程中更改集合是不合适的。因此,我应该首先遍历数据表并在列表中添加所有行,然后遍历列表并标记,而不是先检查一行是否满足删除要求然后将其标记为已删除的for循环。删除行。是什么原因造成的?我有什么选择(而不是使用我指的是行列表)?


阅读 540

收藏
2020-05-19

共1个答案

小编典典

如果使用简单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);
        }
2020-05-19