有沒有一種方法可以從列表框中刪除基於字符串的項目?搜索並從列表框中刪除項目
我一直在玩弄了幾分鐘,這裏是我有這麼遠,但它不工作
foreach(string file in LB_upload.Items)
{
ftp.Upload(file);
int x = LB_upload.Items.IndexOf(file);
LB_upload.Items.RemoveAt(x);
}
我可以只通過每個項目的循環,但我想要做的東西多一點優雅
有沒有一種方法可以從列表框中刪除基於字符串的項目?搜索並從列表框中刪除項目
我一直在玩弄了幾分鐘,這裏是我有這麼遠,但它不工作
foreach(string file in LB_upload.Items)
{
ftp.Upload(file);
int x = LB_upload.Items.IndexOf(file);
LB_upload.Items.RemoveAt(x);
}
我可以只通過每個項目的循環,但我想要做的東西多一點優雅
根據你的例子,我會做類似的事情;
foreach(string file in LB_upload.Items)
{
ftp.Upload(file);
}
LB_upload.Items.Clear();
您可能遇到的問題是您在迭代此過程時正在更改列表。這是一個很大的禁忌,並且在這個網站上已經被廣泛討論。
LOL,很好的解決方案! – 2009-09-09 14:40:34
哈耶我猜這是最優雅的方式(1行代碼)。 – Crash893 2009-09-09 15:02:36
根據您的問題的標題,它聽起來像你不想刪除每個項目,只是其中的一些。如果是這樣的話:
for (int i = LB_upload.Items.Count - 1; i >= 0; i--)
{
if (somecondition)
{
ftp.Upload(LB_upload.Items[i]);
LB_upload.Items.RemoveAt(i);
}
}
+1感謝您的想法 – Crash893 2009-09-09 15:04:06
它不起作用,因爲您正在更改您正在迭代的IEnumerable。 –
Bavo
2009-09-09 14:36:29