Необходимо получить два значения в массив из разделения строки - PullRequest
1 голос
/ 28 сентября 2019

У меня есть строка, которая выглядит следующим образом:

var result = "y-9m-10y-9m-11y-0m-02y-0m-03";

Мне нужно составить 2 списка: один для всех y- объектов (9,9,0,0) и другой для m- объектов (10,11,02,03).Как я могу это сделать?

У меня есть этот старый код, который до этого не заботился о y- объектах.Теперь мне нужно получить оба комплекта.

var result = "m-10m-11m-02m-03";
var months = result.Split(new[] { "m-" }, StringSplitOptions.RemoveEmptyEntries);

1 Ответ

3 голосов
/ 28 сентября 2019

Быстрое и грязное решение с использованием регулярных выражений и LINQ:

var months = Regex.Matches(result, @"m-(\d+)").Cast<Match>().Select(m => int.Parse(m.Groups[1].Value));
var years = Regex.Matches(result, @"y-(\d+)").Cast<Match>().Select(m => int.Parse(m.Groups[1].Value));

Обратите внимание, что это не делает никакой проверки ошибок.

Редактировать: В вопросе, который вы, кажется, используете извлеченныйстроки без преобразования их в int.В этом случае пропустите int.Parse и используйте m.Groups[1].Value напрямую.

...