Диапазон в последовательность записей

Scorpic

Client
Регистрация
17.08.2020
Сообщения
72
Благодарностей
19
Баллы
8
Всем Привет!

Вытаскиваю данные вида:
Audi 100 IV (C4) 1990 – 1994 Седан

Надо диапазон 1990 - 1994 преобразовать в последовательность 1990, 1991, 1992, 1993, 1994

Чтобы в файле были записи:

Audi 100 IV (C4) 1990 Седан
Audi 100 IV (C4) 1991 Седан
Audi 100 IV (C4) 1992 Седан
Audi 100 IV (C4) 1993 Седан
Audi 100 IV (C4) 1994 Седан

Не понимаю, как динамически сделать последовательность записей. Куда копать?
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 386
Баллы
113
C#:
string text = "Audi 100 IV (C4) 1990 – 1994 Седан";
string yearRange = Regex.Match(text, @"\d{4}\ –.*\d{4}").Value;
int[] years = yearRange.Split('–').Select(x=>int.Parse(x.Trim())).ToArray();
for(int i = years[0]; i <= years[1]; i++){
    string _text = text.Replace(yearRange, i.ToString());
//    project.Lists["spisok"].Add(_text);
    project.SendInfoToLog(_text);
}
1673358781277.png
 
  • Спасибо
Реакции: Scorpic и Ilshakin

Ilshakin

Client
Регистрация
14.02.2017
Сообщения
632
Благодарностей
543
Баллы
93
как нейросеть решила эту задачу с условием (в 1 строку через Linq, без регулярок)

C#:
string input = "Audi 100 IV (C4) 1990 – 1994 Седан";

project.Lists["Список 1"].AddRange(Enumerable.Range(int.Parse(input.Split(' ')[input.Split(' ').Length - 4]), int.Parse(input.Split(' ')[input.Split(' ').Length - 2]) - int.Parse(input.Split(' ')[input.Split(' ').Length - 4]) + 2)
    .Select(year => string.Join(" ", input.Split(' ').Take(input.Split(' ').Length - 4)) + " " + year + " " + input.Split(' ')[input.Split(' ').Length - 1])
    .ToList());
 
  • Спасибо
Реакции: Alexmd

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