【问题标题】:How to get the character and operator in a string in C# using Split如何使用Split在C#中获取字符串中的字符和运算符
【发布时间】:2014-07-04 10:29:44
【问题描述】:

我有一个要求,我必须根据公式对文本框执行计算。我想知道如何分别获取字段名称和运算符,以便我可以将其绑定到公式文本框中。示例:{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;
    }

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

【问题讨论】:

  • 在这种情况下,在'+' 上拆分会不会比在' ' 上拆分更合适?
  • 您到底在寻找什么样的答案?给你写计算代码的?
  • 公式变量有什么值?它包含整个表达式吗?你不应该在'+'上分开吗?分手后你想做什么?

标签: c# asp.net string split radgrid


【解决方案1】:

如果您只使用+ 运算符,那么您应该拆分它而不是' '。要确保您没有带空格的字段名称,请使用 trim。

string[] words = Formula.Split('+');
for (int i = 0; i < words.Length; i++)
{
    words[i] = words[i].Trim();
}

当然,在这种情况下,您不能在字段名称中包含 +。

【讨论】:

    【解决方案2】:

    您也可以使用 LINQ:

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

    这将拆分字符串formula 并修剪每个条目,以便您只剩下字段名称。结果输出将是一个包含 FieldName1、FieldName2 和 FieldName3 的 3 元素数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-09
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多