Поиск в списке строк - 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();
}
}
}