若单元格包含一些符号,则求和多个数字



我有一个datagridview,在这里我计算一列中的值,并乘以另一列的值,然后对所有行求和,并用以下代码在标签中显示结果:

int sum2 = 0;
for (int m = 0; m < dataGridView1.Rows.Count; ++m)
{
sum2 += getCellRepsSum(dataGridView1.Rows[m]);
}

label18.Text = sum2.ToString();


int getCellRepsSum(DataGridViewRow dr)
{
int serie = Convert.ToInt32(dr.Cells[1].Value);

int l = Convert.ToInt32(dr.Cells[2].Value); //reps

int result = 0;

result = serie * l;
return result;
}

如果我设置了一个数字,这很好,但我想添加的条件是基于+或-等符号的存在。

所以。。。如果单元值"0";riptizioni";列包含"-"或"+"然后把每个符号之间的数字求和,然后像我的代码一样相乘。

示例:12-8-6需要求和12+8+6,然后乘以"1";系列";像我的代码等中的列

我试过这样做,但没有成功,因为"-"符号不允许ToInt转换:

int sum2 = 0;
for (int m = 0; m < dataGridView1.Rows.Count; ++m)
{
sum2 += getCellRepsSum(dataGridView1.Rows[m]);
}

label18.Text = sum2.ToString();


int getCellRepsSum(DataGridViewRow dr)
{
int serie = Convert.ToInt32(dr.Cells[1].Value);
int result = 0;
string l = Convert.ToString(dr.Cells[2].Value);
if (l.Contains("-")) {
int lt = Convert.ToInt32(dr.Cells[2].Value);
int sumReps = 0;

while (lt > 0)
{
sumReps += (lt % 10);
lt = lt / 10;
}
result = sumReps;
return result;
}
else {
//reps
int li = Convert.ToInt32(dr.Cells[2].Value); //reps


result = serie * li;
return result;
}

return result;
}

我该如何解决这个问题?

更改

int lt = Convert.ToInt32(dr.Cells[2].Value);

int lt = dr.Cells[2].Value.ToString().Split('+','-').Select(int.Parse).Sum();

别忘了把它乘以serie

最新更新