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

  • Автор темы Автор темы one
  • Дата начала Дата начала

one

Client
Регистрация
22.09.2015
Сообщения
7 020
Реакции
1 315
Баллы
113
Подскажите метод удаления строки в списке содержащую текст из переменной.
 
Подскажите метод удаления строки в списке содержащую текст из переменной.
Через стандартный экшн "Операции над списком",Выбираешь список,потом ставишь "Удалить строки",и выбираешь "Содержищие текст" и выбираешь переменную.
2018-04-05_131850.png
 
Я не зря написал в разделе Снипеты и указал что нужен метод. Мне нужен C# метод.
 
Я не зря написал в разделе Снипеты и указал что нужен метод. Мне нужен 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
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--;" обработка будет некорректной, ибо будет пропускаться каждая строка идущая сразу после удаляющейся строки.
 
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--;" обработка будет некорректной, ибо будет пропускаться каждая строка идущая сразу после удаляющейся строки.
Я ж сказал ретурны по своему выставить))))
 
Во! То что надо и уже с локом в комплекте! :) Благодарю!
 
А если несколько перепроверок сделать надо, скажем так содержит любой из этих текстов либо A, либо B, либо C
покомпактнее может подскажет кто.
 

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