有没有办法根据字符串从列表框中删除项目?
我一直在玩几分钟,这是我迄今为止所做的,但它不起作用
foreach(string file in LB_upload.Items)
{
ftp.Upload(file);
int x = LB_upload.Items.IndexOf(file);
LB_upload.Items.RemoveAt(x);
}
我可以循环浏览每个项目,但我想做一些更优雅的事情
答案 0 :(得分:3)
根据你的例子,我会做类似的事情;
foreach(string file in LB_upload.Items)
{
ftp.Upload(file);
}
LB_upload.Items.Clear();
您可能遇到的问题是您在迭代此列表时正在更改列表。这是一个很大的禁忌,并且在这个网站上已经被覆盖了。
答案 1 :(得分:3)
while(LB_upload.Items.Count > 0)
{
ftp.Upload(LB_upload.Items[0].ToString());
LB_upload.Items.RemoveAt(0);
}
答案 2 :(得分:3)
根据您问题的标题,听起来您不想删除所有项目,只需删除其中的一些项目。如果是这样的话:
for (int i = LB_upload.Items.Count - 1; i >= 0; i--)
{
if (somecondition)
{
ftp.Upload(LB_upload.Items[i]);
LB_upload.Items.RemoveAt(i);
}
}