This question already has answers here:
How do I loop through items in a list box and then remove those item?

(8个答案)


7年前关闭。





我目前有一个Sharepoint 2010 Web部件,其中包含多个标签。我想以编程方式删除除这些标签之一以外的所有标签。

我尝试了下面的代码,但得到了System.InvalidOperationException,因为显然在迭代过程中无法修改集合。但是,我不知道该如何尝试。

    private void clearLabels()
    {
        foreach (Control cont in this.Controls)
            if (cont is Label && cont.ID != "error")
                this.Controls.Remove(cont);
    }

最佳答案

向后迭代。

for(int i = this.Controls.Count - 1; i >= 0; i--)
{
    if (this.Controls[i] is Label && this.Controls[i].ID != "error")
    {
        this.Controls.Remove(this.Controls[i]);
    }
}

关于c# - 从控件中删除除一项以外的所有项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6664562/

10-11 02:06