如何使用Split在C#中获取字符串中的字符和运算符

如何使用Split在C#中获取字符串中的字符和运算符,c#,asp.net,string,split,radgrid,C#,Asp.net,String,Split,Radgrid,我有一个要求,我必须根据公式对文本框进行计算。我想知道如何分别获取字段名和运算符,以便将其绑定到formula textbox中。示例:{FieldName1}+{FieldName2}+{Fieldname3}是公式,我希望数据分别包含大括号,因为它们将分别作为字段名和+符号。我不知道怎么弄到这个。这是我的密码- DataTable dt_main = GetTable(); DataTable dt_AutocalculatedColumns = GetCalculatedC

我有一个要求,我必须根据公式对文本框进行计算。我想知道如何分别获取字段名和运算符,以便将其绑定到formula textbox中。示例:{FieldName1}+{FieldName2}+{Fieldname3}是公式,我希望数据分别包含大括号,因为它们将分别作为字段名和+符号。我不知道怎么弄到这个。这是我的密码-

    DataTable dt_main = GetTable();
    DataTable dt_AutocalculatedColumns = GetCalculatedColumn();
    string AutoGeneratedColumnName = string.Empty;
    string Formula = string.Empty;
    string FLD1 = string.Empty;
    string FLD2 = string.Empty;
    string FLD3 = string.Empty;
    if (dt_AutocalculatedColumns.Rows.Count > 0)
    {
        foreach (DataRow row_field in dt_AutocalculatedColumns.Rows) 
        {
            AutoGeneratedColumnName = row_field["FieldName"].ToString();
            Formula = row_field["AutoCalculatedFormula"].ToString();
            string[] words = Formula.Split(' ');
            foreach (string Eachword in words)
            {
                // what to do here i am not getting
            }
        }
    }
    protected DataTable GetCalculatedColumn()
    {
        SqlConnection con= newSqlConnection(ConfigurationManager.ConnectionStrings["ExcelLikeConnnectionString"].ConnectionString);
        con.Open();
        SqlCommand cmd = new SqlCommand("My Select Query", con);
        cmd.CommandType = CommandType.Text;
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);
        con.Close();
        return dt;
    }

任何帮助都将不胜感激。提前感谢

如果您仅使用
+
运算符,则应在其上拆分,而不是在
''
上拆分。要确保字段名不带空格,请使用trim

string[] words = Formula.Split('+');
for (int i = 0; i < words.Length; i++)
{
    words[i] = words[i].Trim();
}
string[]words=Formula.Split('+');
for(int i=0;i
当然,在这种情况下,字段名中不能有
+

也可以使用LINQ:

string formula = "{FieldName1} + {FieldName2}+{Fieldname3}";
string[] words = formula.Split('+')
    .Select(w => w.Trim(new char[] {' ', '{', '}'})).ToArray();

这将拆分字符串
公式
,并修剪每个条目,以便只留下字段名。结果输出将是一个包含
FieldName1
FieldName2
FieldName3

的3元素数组。在这种情况下,在
'+'
上拆分不是比在
'
上拆分更合适吗?您到底在寻找什么样的答案?为您编写计算代码的程序?公式变量的值是多少?它包含整个表达式吗?你不应该在“+”上分开吗?拆分后您想做什么?