从列表框中搜索和删除项目

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

我一直在玩几分钟,这是我到目前为止,但它不起作用

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); } }