在c#中增加1

use*_*103 0 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
    }
}
Run Code Online (Sandbox Code Playgroud)

use*_*016 14

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

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

  • +1因为这些答案适合所有人,而不仅仅是OP (4认同)
  • -1,我真的怀疑,那些不了解基础知识的人应该使用这种复杂的解决方案.特别是当没有评论时.这个答案不是解决问题的好方法. (3认同)

Eug*_*eck 6

int x = x + 1;
Run Code Online (Sandbox Code Playgroud)

不管用.你必须做类似的事情

int x = 0;
Run Code Online (Sandbox Code Playgroud)

循环之前和

x = x + 1;
Run Code Online (Sandbox Code Playgroud)

在里面.另外,您可能希望在循环之后放置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();
Run Code Online (Sandbox Code Playgroud)

  • 请使用i ++. (3认同)

Jah*_*ine 5

将declation移动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
 }
Run Code Online (Sandbox Code Playgroud)

改进的一个:

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
Run Code Online (Sandbox Code Playgroud)


Cip*_*ipi 5

int x = 0;

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

lblCounter.Text = x.ToString();
Run Code Online (Sandbox Code Playgroud)