Удалить строку содержащую текст

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Подскажите метод удаления строки в списке содержащую текст из переменной.
 

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
469
Благодарностей
198
Баллы
43
Подскажите метод удаления строки в списке содержащую текст из переменной.
Через стандартный экшн "Операции над списком",Выбираешь список,потом ставишь "Удалить строки",и выбираешь "Содержищие текст" и выбираешь переменную.
2018-04-05_131850.png
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Я не зря написал в разделе Снипеты и указал что нужен метод. Мне нужен C# метод.
 

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
469
Благодарностей
198
Баллы
43

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
469
Благодарностей
198
Баллы
43
Я не зря написал в разделе Снипеты и указал что нужен метод. Мне нужен C# метод.
Вот держи return сам выстави как тебе нужно.Снипет ищет в списке значение из переменной,если находит то удаляет всю строку содержащую текст из переменной
Код:
// берем из переменной текст, который надо искать
var textContains = project.Variables["Переменная"].Value;
// получаем список, в котором будем искать
var sourceList = project.Lists["Список"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < sourceList.Count; i++)
    {
        // читаем строку из списка
        var str = sourceList[i];
        // проверяем содержание текста в строке, если есть совпадение возвращаем "yes"
        if (str.Contains(textContains))
        {
            //удаляем строку содержащую текст
             sourceList.RemoveAt(i);
        }
    }
}
 
  • Спасибо
Реакции: Mikhail B., luk911 и one

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
C#:
// берем из переменной текст, который надо искать
var textContains = project.Variables["Переменная"].Value;
// получаем список, в котором будем искать
var sourceList = project.Lists["Список"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < sourceList.Count; i++)
    {
        // читаем строку из списка
        var str = sourceList[i];
        // проверяем содержание текста в строке, если есть совпадение возвращаем "yes"
        if (str.Contains(textContains))
        {
            //удаляем строку содержащую текст
             sourceList.RemoveAt(i);
             i--;
        }
    }
}
без "i--;" обработка будет некорректной, ибо будет пропускаться каждая строка идущая сразу после удаляющейся строки.
 

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
469
Благодарностей
198
Баллы
43
C#:
// берем из переменной текст, который надо искать
var textContains = project.Variables["Переменная"].Value;
// получаем список, в котором будем искать
var sourceList = project.Lists["Список"];
// ищем в каждой строчке в списке
lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < sourceList.Count; i++)
    {
        // читаем строку из списка
        var str = sourceList[i];
        // проверяем содержание текста в строке, если есть совпадение возвращаем "yes"
        if (str.Contains(textContains))
        {
            //удаляем строку содержащую текст
             sourceList.RemoveAt(i);
             i--;
        }
    }
}
без "i--;" обработка будет некорректной, ибо будет пропускаться каждая строка идущая сразу после удаляющейся строки.
Я ж сказал ретурны по своему выставить))))
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Во! То что надо и уже с локом в комплекте! :-) Благодарю!
 

Misha

Client
Регистрация
23.10.2016
Сообщения
250
Благодарностей
71
Баллы
28

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
А если несколько перепроверок сделать надо, скажем так содержит любой из этих текстов либо A, либо B, либо C
покомпактнее может подскажет кто.
 

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