Массовое удаление строк из списка

zlodey

Client
Регистрация
24.04.2011
Сообщения
135
Благодарностей
9
Баллы
18
Доброй ночи, подскажите как лучше организовать массовое удаление строк из списка, на данный момент нашел /post-396935

Получается можно использовать регулярку (?i)(один|два|три) в результате строки удаляются массово, но и тут проблема с формирование регулярки нужного формата из построчного списка слов, через екшен (обработка текста) не получилось строки собрать в регулярку вида (?i)(один|два|три), подскажите как лучше это сделать без сторонних инструментов.
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 421
Баллы
113
Не умею регулярками пользоваться и не хочу уметь
C#:
var list = project.Lists["list"];// оригинальный список
List<string> stoplist = project.Lists["stoplist"];// список со стопсловами
List<string> temp = new List<string>(list.Where(x=>!stoplist.Any(x.Contains)));
list.Clear();
list.AddRange(temp);
 
  • Спасибо
Реакции: zlodey

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 816
Баллы
113
Добавляете слова в Список.
С помощью экшена Операции над списком-Объединить элементы списка объединяете строки с разделителем |.
После этого у Вас получится что-то в таком духе - лето|зима|осень|весна (представим, что эта строка у Вас хранится в переменной stop_words).
Затем с помощью экшена Обработка переменных создаём окончательное регулярное выражение с помощью такой конструкции - (?i)({-Variable.stop_words-})
71479

Или же можно пропустить второй шаг, а сразу использовать конструкцию (?i)({-Variable.stop_words-}) в экшене удаления строк:
71480
 

zlodey

Client
Регистрация
24.04.2011
Сообщения
135
Благодарностей
9
Баллы
18
Не умею регулярками пользоваться и не хочу уметь
C#:
var list = project.Lists["list"];// оригинальный список
List<string> stoplist = project.Lists["stoplist"];// список со стопсловами
List<string> temp = new List<string>(list.Where(x=>!stoplist.Any(x.Contains)));
list.Clear();
list.AddRange(temp);

Ошибка

C#:
Ошибка в действии "CS0266" "Cannot implicitly convert type 'ZennoLab.InterfacesLibrary.ProjectModel.IZennoList' to 'System.Collections.Generic.List<string>'. An explicit conversion exists (are you missing a cast?)". [Строка: 2; Cтолбец: 25]
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 421
Баллы
113
а, ну да. Прошу прощения)
C#:
var list = project.Lists["list"];// оригинальный список
var stoplist = project.Lists["stoplist"];// список со стопсловами
List<string> temp = new List<string>(list.Where(x=>!stoplist.Any(x.Contains)));
list.Clear();
list.AddRange(temp);
 
  • Спасибо
Реакции: zlodey

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)