有没有办法根据字符串从列表框中删除项目?

我一直在玩几分钟,这是我迄今为止所做的,但它不起作用

foreach(string file in LB_upload.Items)
{
    ftp.Upload(file);
    int x = LB_upload.Items.IndexOf(file);
    LB_upload.Items.RemoveAt(x);
}

我可以循环浏览每个项目,但我想做一些更优雅的事情

有帮助吗?

解决方案

while(LB_upload.Items.Count > 0)
{
  ftp.Upload(LB_upload.Items[0].ToString());
  LB_upload.Items.RemoveAt(0);
}

其他提示

根据你的例子,我会做类似的事情;


foreach(string file in LB_upload.Items)
{
  ftp.Upload(file);
}
LB_upload.Items.Clear();

您可能遇到的问题是您在迭代此列表时正在更改列表。这是一个很大的禁忌,并且在这个网站上已经被覆盖了。

根据您问题的标题,听起来您不想删除所有项目,只需删除其中的一些项目。如果是这样的话:

for (int i = LB_upload.Items.Count - 1; i >= 0; i--)
{
    if (somecondition)
    {
        ftp.Upload(LB_upload.Items[i]);
        LB_upload.Items.RemoveAt(i);
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top