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