for循环中的多个if条件

时间:2015-07-07 19:31:55

标签: c# datagridview

我的应用程序在datagridview中搜索特定字符串的所有单元格,并将相邻单元格中的相应值与十进制变量相加。在下面的代码中,当我用Anotherstring条件取出嵌套if时,我的代码运行完美。当我将其插入到我的代码中时,嵌套的if条件不会运行。我做错了什么?

             decimal amount = 0;
             decimal sum = 0;

           foreach (DataGridViewRow row in dataGridView1.Rows)
           {
            for (int index = 0; index < dataGridView1.ColumnCount - 1; index++)
                  {

                   DataGridViewCell cell = row.Cells[index];
                   if (cell.Value == DBNull.Value || cell.Value == null)
                       continue;

                   if (cell.Value.ToString().Contains("String"))
                   {
                       if (cell.Value.ToString().Contains("Anotherstring"))
                       {
                           DataGridViewCell next = row.Cells[index + 1];
                           string s4 = next.Value.ToString();
                           amount += Decimal.Parse(s4, NumberStyles.Currency, custom);

                           textBox50.Text = amount.ToString();

                       }


                       DataGridViewCell nexter = row.Cells[index + 1];
                       string s5 = nexter.Value.ToString();
                       sum += Decimal.Parse(s5, NumberStyles.Currency, custom);

                       textBox41.Text = sum.ToString();

                   }

2 个答案:

答案 0 :(得分:1)

您可能会进入内部if语句,但Contains区分大小写。因此,您要么使用ToLower,要么在关注案例时使用支票中的正确案例。

if (cell.Value.ToString().ToLower().Contains("string"))
{
   if (cell.Value.ToString().ToLower().Contains("anotherstring"))
   {
       DataGridViewCell next = row.Cells[index + 1];
       string s4 = next.Value.ToString();
       amount += Decimal.Parse(s4, NumberStyles.Currency, custom);

       textBox50.Text = amount.ToString();

   }


   DataGridViewCell nexter = row.Cells[index + 1];
   string s5 = nexter.Value.ToString();
   sum += Decimal.Parse(s5, NumberStyles.Currency, custom);

   textBox41.Text = sum.ToString();

}

答案 1 :(得分:0)

Contains方法区分大小写。在你的例子中,&#34; Anotherstring&#34;不包含&#34; String&#34;,因此嵌套的if语句不匹配。

如果您需要不区分大小写的匹配,请考虑使用IndexOf()。