@pavviaz

Как можно преобразовать MatchCollection в массив строк в c#?

Здравствуйте, пишу программу для автоматического решения уравнений на Visual C#. После ввода уравнения и некоторых преобразований получаем, например, это :
string Equation= "+5x-25x+151-x+x+325x-1+";
Далее здесь необходимо привести подобные слагаемые. Для этого захотел использовать регулярные выражения. Например, для выделения "-x" или "+x" использую следующее :
string Xplusandmines = @"[+--][x]";
Так как в уравнении может быть не один такой член, то использую метод Regex.Matches.
В итоге, для получения переменной типа MathCollection написал это :
MatchCollection matches = Regex.Matches(Equation, Xplusandmines);

Теперь необходимо как-то преобразовать matches в массив строк или нечто подобное, где найденные совпадения будет удобно обрабатывать. Никак не могу придумать, как преобразовать MatchCollection в string[] (или во что-то другое). Помогите, пожалуйста. Спасибо :)
  • Вопрос задан
  • 1176 просмотров
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Либо циклом пройтись и собрать массив/коллекцию:
var result = new List<string>();

foreach (Match m in matches)
{
  result.Add(m.Value);
}

// в result будет коллекция строк

Либо можно использовать System.Linq:

using System.Linq;
var stringArray = matches.Cast<Match>().Select(m => m.Value).ToArray();

Как-то показывал пример решателя, но на VB.NET. При желании, можно на C# сделать аналогично.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы