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

Scorpic

Client
Регистрация
17.08.2020
Сообщения
76
Реакции
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 Седан

Не понимаю, как динамически сделать последовательность записей. Куда копать?
 
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
как нейросеть решила эту задачу с условием (в 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

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