Удаление строк не соответствующих диапазону

Igorii

Client
Регистрация
21.02.2015
Сообщения
371
Благодарностей
297
Баллы
63
Друзья, помогите, пожалуйста с кодом.
У меня есть список в каждой строке которого содержатся различные параметры, и в том числе подобные конструкции - "members_count":18030, число здесь может быть любым.
И есть две переменные - min и max, в которых содержатся соответственно минимальное и максимальное значение параметра members_count.
Подскажите, способ, быстро, удалить из списка строки, в которых данный параметр, не соответствует заданному диапазону?
Делал перебором на кубиках, но получается слишком долго, даже с выключенной отрисовкой.
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Друзья, помогите, пожалуйста с кодом.
У меня есть список в каждой строке которого содержатся различные параметры, и в том числе подобные конструкции - "members_count":18030, число здесь может быть любым.
И есть две переменные - min и max, в которых содержатся соответственно минимальное и максимальное значение параметра members_count.
Подскажите, способ, быстро, удалить из списка строки, в которых данный параметр, не соответствует заданному диапазону?
Делал перебором на кубиках, но получается слишком долго, даже с выключенной отрисовкой.
Код:
var list = project.Lists["list"];
int min = int.Parse(project.Variables["min"].Value);
int max = int.Parse(project.Variables["max"].Value);

for(int i = list.Count - 1; i >= 0; i--)
{
    string membersCount = new Regex(@"(?<=members_count"":).*?(?=,)").Match(list[i]).Value.Trim();
    int memInt;
    if (int.TryParse(membersCount, out memInt))
    {
        if(memInt < min || memInt > max) list.RemoveAt(i);
    }
}
 
  • Спасибо
Реакции: Igorii

Igorii

Client
Регистрация
21.02.2015
Сообщения
371
Благодарностей
297
Баллы
63
Отлично, спасибо!!! Работает!
А можно ещё такой вариант:
Есть таблица с данными, с тремя столбцами A, B, C. В столбце B, лежат числа, как удалить строки, в которых ячейки столбца B не соответствуют диапазону заданному в переменных min и max?
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Отлично, спасибо!!! Работает!
А можно ещё такой вариант:
Есть таблица с данными, с тремя столбцами A, B, C. В столбце B, лежат числа, как удалить строки, в которых ячейки столбца B не соответствуют диапазону заданному в переменных min и max?
Код:
var table = project.Tables["table"];
int min = int.Parse(project.Variables["min"].Value);
int max = int.Parse(project.Variables["max"].Value);

for(int i = table.RowCount - 1; i >= 0; i--)
{
    int memInt;
    if (int.TryParse(table.GetCell("B", i), out memInt))
    {
        if(memInt < min || memInt > max) table.DeleteRow(i);
    }
}
 
  • Спасибо
Реакции: Igorii

Igorii

Client
Регистрация
21.02.2015
Сообщения
371
Благодарностей
297
Баллы
63

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