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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5