Как удалить строки из списка которые старше 30 дней?

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

Lextor

Client
Регистрация
19.06.2020
Сообщения
174
Реакции
20
Баллы
18
Шаблон заносит при каждой публикации в список: UnixTime;текст

Пример:
1603316817.72244;Name-A
1603476012.43424;Name-B
1603476050.71825;Name-C
1603476067.78107;Name-D

Нужно удалить все строки которые старше 30 дней. Возможна ли реализовать по регулярному выражению как в скрине? Если нет то как реализовать?

Screenshoot:
 
Взять строку, сделать SPLIT по ";", проверить сколько строке дней, если меньше 30 - внести ее в новый список. Либо удалить из текущего, только нужно учитывать тогда что список стал короче и нужно чекать не следующую строку, а эту же (это касаемо цикла).
 
C#:
Развернуть Свернуть Копировать
List<string>templist = new List<string>();//временный список
var list = project.Lists["список"];//исходный список
foreach(string date in list)//проверяем все строки в списке
    if(Convert.ToInt32(date.Split('.')[0]) > (int)(DateTime.Now - new DateTime(1970, 1, 30)).TotalSeconds)//если младше 30 дней
        templist.Add(date);//добавляем во временный список
list.Clear();//опустошаем исходный список
list.AddRange(templist);//добавляем в исходный список строки из временного
Проверить было негде, если, что поправите там с временем, вдруг, я накосячил.
 
  • Оценить
Реакции: Lextor
получилось
 
C#:
Развернуть Свернуть Копировать
List<string>templist = new List<string>();//временный список
var list = project.Lists["список"];//исходный список
foreach(string date in list)//проверяем все строки в списке
    if(Convert.ToInt32(date.Split('.')[0]) > (int)(DateTime.Now - new DateTime(1970, 1, 30)).TotalSeconds)//если младше 30 дней
        templist.Add(date);//добавляем во временный список
list.Clear();//опустошаем исходный список
list.AddRange(templist);//добавляем в исходный список строки из временного
Проверить было негде, если, что поправите там с временем, вдруг, я накосячил.



работает, так как вы написали :)
 

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