2013-04-01 8 views
4

У меня есть список строк, называемых albumList , строка имеет следующую структуру: abc, abc, abc, abc, abc Я прошу пользователя выполнить поиск альбома для удаления; если альбом будет найден, он будет удален из списка. В списке может быть больше одного альбома с тем же именем.удалить все строки из списка, содержащего определенную подстроку

private void searchAlbumName(string search) 
     { 
      string[] cellVal; 
      foreach (string x in albumList) 
      { 
       cellVal = x.Split(','); 
       if (cellVal[0].ToString().Equals(search)) 
       { 
        //do delete here 
       } 
      } 
     } 

Я не уверен, как удалить каждый альбом с именем поиска

ответ

9

Вы можете использовать RemoveAll, чтобы получить результат:

albumList.RemoveAll(x => x.Split(',')[0].ToString().Equals(search)) 

Для легче читать, вы можете использовать:

albumList.RemoveAll(x => x.Split(',').First().Equals(search)) 
+1

безупречный! благодаря! – Pindo

0

LINQ Использование сделать

albumList.RemoveAll(x => cellVal[0].ToString().Equals(search))); 

См. Сообщение this.

Смежные вопросы