所以我想说我有一个字符串:“a = b + c - d”
我想创建一个字符数组来保存这些表达式符号(=, - ,+,)并将它们转换为数组,例如在这种情况下数组将是 { '=', '+', ' - '}
代码示例:
string s = "a = b + c -d"
char[] array = s.???('=','-','+');
有一个简单的方法就是没有循环吗?
提前致谢:)
答案 0 :(得分:4)
您可以使用linq并执行以下操作:
char[] operators = new char[] { '=', '-', '+' };
string s = "a = b + c -d";
var opArray = s.Where(x=>operators.Contains(x)).ToArray();
您可以在operators
数组
答案 1 :(得分:2)
您可以使用LINQ选择不是字母或空格的字符
var array = s.Where(c => !Char.IsLetter(c) && !Char.IsWhiteSpace(c)).ToArray();
输出:
[ '=', '+', '-' ]
您还可以创建扩展方法以使代码更具可读性,并仅选择数学运算符
public static class Extensions
{
private static HashSet<char> mathOperators =
new HashSet<char>(new[] { '+', '-', '=' }); // add more symbols here
public static bool IsMathOperator(this char c) => mathOperators.Contains(c);
}
使用
var array = s.Where(c => c.IsMathOperator()).ToArray();