Поиск и удаление элемента из списка
Вопрос
Есть ли способ удалить элемент из списка на основе строки?
Я играл несколько минут, и вот что у меня есть, но это не работает
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);
}
}
Не связан с StackOverflow