在c#中增加1

时间:2011-12-30 11:14:58

标签: c#

我正在尝试计算ID为3的DataList中的行,并将值放在标签中。

for (int i = 0; i < Product.Items.Count; ++i)
{    
    if (table.Rows[i]["id"].ToString() == "3")
    {
        int x = x + 1;
        lblCounter.text = x.ToString
    }
}

7 个答案:

答案 0 :(得分:14)

lblCounter.Text = table.Rows.OfType<DataRow>().Count(row => row["id"] == 3).ToString();

根据KooKiz的评论编辑,假设表格为DataTable

答案 1 :(得分:5)

x的声明移至外部范围。

int x=0;
for (int i = 0; i < Product.Items.Count; ++i)
 if (table.Rows[i]["id"].ToString() == "3")
 {
      x = x + 1;
      lblCounter.text = x.ToString
 }

改进的一个:

int x = 0;
for (int i = 0; i < Product.Items.Count; ++i)
   if (table.Rows[i]["id"].ToString() == "3")
      x = x + 1;
lblCounter.text = x.ToString

答案 2 :(得分:5)

int x = x + 1;

不行。你必须做类似

的事情
int x = 0;
在循环之前

x = x + 1;
在里面。另外,您可能希望在循环之后放置lblCounter.text = x.ToString,以便tu只更新一次。

这使得

int x = 0;
for (int i = 0; i < Product.Items.Count; ++i)
     if (table.Rows[i]["id"].ToString() == "3")
          x = x + 1;
lblCounter.text = x.ToString();

答案 3 :(得分:4)

int x = 0;

for (int i = 0; i < Product.Items.Count; ++i)
{
     if (table.Rows[i]["id"].ToString() == "3")
     {
       x++;
     }
}

lblCounter.Text = x.ToString();

答案 4 :(得分:3)

您在该代码中遇到了几个问题。

你不能增加x变量的原因。是你在循环中声明它吗?因此,它为每次循环运行“重新创建”。

下一个问题可能是你正在使用preincrementation instead of post increment,最后一件事是将常量与变量进行比较通常会更好。这可以保护您免受不必要的NullPointerException。

因此改进后的代码应如下所示:

int x = 0; //Declaration of x
for(int i=0; i< Product.Items.Count; i++) { //Post increment
 if("3".Equals(table.Rows[i]["id"]) { // Check constant against variable. 
    x++; // Post increment x = x + 1; 
 }  
}
lblCounte.Text = Convert.ToString(x); //Assign the int result to String member.

如果有任何其他问题,请不要犹豫,写下来。

和平。

答案 5 :(得分:1)

您需要在循环外初始化x,然后调用.ToString()以查找字符串值。 (这是一种方法,而不是属性,所以它需要最终的()

试试这个:

int x = 0;
for (int i = 0; i < Product.Items.Count; ++i)

   if (table.Rows[i]["id"].ToString() == "3")
   {
        x = x + 1;
        lblCounter.text = x.ToString();
   }
}

您也可以使用x++一步增加,但我个人更喜欢明确增加。

答案 6 :(得分:0)

如果我理解你的问题。

int x = 0;
for (int i = 0; i < Product.Items.Count; ++i)

     if (table.Rows[i]["id"].ToString() == "3")
     {
          x = x + 1;
          lblCounter.text = x.ToString()
     }