2017-01-18 3 views
0

In Ordnung, ich werde dies kurz und auf den Punkt halten.Razor: Sum innerhalb foreach außerhalb der Schleife zu verwenden

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 /> 
} 

Also dieser Code hier funktioniert die Berechnung für total jedes Mal, wenn die foreach Schleifen, jede Schleife gibt einen großen Gesamt zu sumKG, aber dann die for loop macht die foreach Schleife wieder, was es sein sollte, und hat eine neue Berechnung für neue Daten wegen anderen SQL-Code, den ich auch habe, fügt jedoch diese neue Berechnung zum alten Wert sumKG hinzu. Also in diesem Fall weiß ich, dass die erste foreach loop wird 23000 bis sumKG geben und die zweite Runde wird es 5000 geben, aber in diesem Fall gibt es mir 23000, dann 28000 (23000 + 5000), und so weiter, ich will es nicht So, ich will 23000 und dann 5000.

Macht das irgendeinen Sinn? Und gibt es eine Lösung?

Antwort

2

die Variable auf Null setzen, bevor sie wieder durch die Schleife geht:

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; 
} 

Oder verwenden Sie nicht +=

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 /> 
} 
+0

Haha OFC! Vielen Dank! –

+1

9-Minuten-Timer auf Antwort annehmen, aber es kommt! –

Verwandte Themen