[英]Razor: Sum inside foreach to use outside the loop
好吧,我将简短扼要。
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 />
}
因此,这里的代码在每次foreach
循环时都进行total
计算,每个循环为sumKG
提供大的合计,但是随后for loop
循环再次进行了foreach
循环(应这样做),并且由于以下原因对新数据进行了新的计算:我还拥有的其他sql代码将新的计算结果添加到sumKG
的旧值中。 所以在这种情况下,我知道第一个foreach loop
将给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++)
{
var total = 0;
foreach (var c in db.Query(getData))
{
total = c.kg * c.rep * c.sett;
DateTime thisDay = c.date;
nextDay = thisDay.AddDays(1);
}
@sumKG = total;
@sumKG <br />
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.