Поиск в списке строк - C#
Формулировка задачи:
Итак, заполнил я из двух файлов списки.
Допустим, строка представляет собой вид a;b;c;123;d;e в одном файле.
В другом a;b;123;231
Мне необходимо найти элементы в первом списке, в котором 5ый столбец d, например, и если там d, то взять из списка номер, который на примере 123.
Потом найти записи во втором списке, где встречается этот номер и удалить их.
Пробовал делать через форы и ифы, но опять ругается на выход индекса за пределы.
Как это сделать Find u FindAll подскажите достаточно в кратце, пожалуйста.
Решение задачи: «Поиск в списке строк»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Text.RegularExpressions; namespace Test { class Program { static void Main(string[] args) { List<string> list1 = new List<string>(new string[]{"a;b;c;123;124","b;c;d;124;125","a;c;e;125;128","a;b;f;126;127"}); List<string> list2 = new List<string>(new string[] {"125","127"}); List<string> itemToRemove = new List<string>(); foreach (string item1 in list1) { foreach (string item2 in list2) { string pattern = "(;" + item2 + ";)|(;" + item2 + "$)"; if (Regex.IsMatch(item1,pattern)) { itemToRemove.Add(item1); break; } } } foreach (string item in itemToRemove) { list1.Remove(item); } Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д