繁体   English   中英

剃刀:求和foreach以在循环外使用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM