在c#中增加1

本文关键字:增加 | 更新日期: 2023-09-27 18:19:16

我试图计算数据列表中id为3的行,并将值放在标签中。

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

在c#中增加1

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

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

int x = x + 1;

将不起作用。你需要写一些像

这样的东西
int x = 0;
循环前的

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();

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

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

这段代码有几个问题。

不能增加变量x的原因。你在循环中声明了它。因此,它在每次循环运行时都被"重新创建"。

下一个问题可能是你正在使用预递增而不是后递增,最后一件事是,通常比较常数和变量更好。这可以防止不必要的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.
如果有任何其他问题,请不要犹豫,把它们写下来。

和平。

您需要在循环外初始化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++一步递增,但我个人更喜欢让它显式

如果我没理解错的话。

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()
     }