您可以使用正则表达式并仅提取带有符号的数字:
const string str = "3x1+5x2-8x3<=9";
var result = Regex.Matches(str, @"([\+\-]?[\d]+)", RegexOptions.Singleline)
.Cast<Match>().Select(x => x.Value).ToList();
Run Code Online (Sandbox Code Playgroud)
结果:
[0] "3" string
[1] "1" string
[2] "+5" string
[3] "2" string
[4] "-8" string
[5] "3" string
[6] "9" string
Run Code Online (Sandbox Code Playgroud)