C# 剃须刀:在foreach内部求和,在循环外部使用
好的,我会简明扼要地说C# 剃须刀:在foreach内部求和,在循环外部使用,c#,razor,foreach,C#,Razor,Foreach,好的,我会简明扼要地说 for (int i = 1; i < 3; i++) { foreach (var c in db.Query(getData)) { var total = c.kg * c.rep * c.sett; DateTime thisDay = c.date; nextDay = thisDay.AddDays(1); sumKG += total; } @sumKG
for (int i = 1; i < 3; i++)
{
foreach (var c in db.Query(getData))
{
var total = c.kg * c.rep * c.sett;
DateTime thisDay = c.date;
nextDay = thisDay.AddDays(1);
sumKG += total;
}
@sumKG <br />
}
for(int i=1;i<3;i++)
{
foreach(db.Query中的var c(getData))
{
var总=c.kg*c.rep*c.sett;
DateTime thisDay=c.日期;
nextDay=当天。添加天数(1);
sumKG+=总重量;
}
@sumKG
}
因此,这里的代码对total
进行计算,每次foreach
循环,每个循环都会给sumKG
一个很大的总数,但是for循环
会再次进行foreach
循环,它应该这样做,并且会对新数据进行新的计算,因为我还有其他sql代码,它将新计算添加到原来的sumKG
值。因此,在这种情况下,我知道第一个foreach循环将给sumKG
23000,第二轮将给5000,但在这种情况下,它给我23000,然后是28000(23000+5000),依此类推,我不想要这样,我想要23000,然后是5000
这有什么意义吗?有什么解决办法吗?在再次循环之前,将变量设置为零:
for (int i = 1; i < 3; i++)
{
foreach (var c in db.Query(getData))
{
var total = c.kg * c.rep * c.sett;
DateTime thisDay = c.date;
nextDay = thisDay.AddDays(1);
sumKG += total;
}
@sumKG <br />
@sumKG = 0;
}
再次循环之前,将变量设置为零:
for (int i = 1; i < 3; i++)
{
foreach (var c in db.Query(getData))
{
var total = c.kg * c.rep * c.sett;
DateTime thisDay = c.date;
nextDay = thisDay.AddDays(1);
sumKG += total;
}
@sumKG <br />
@sumKG = 0;
}
哈哈哈!非常感谢你!哈哈哈!非常感谢你!