2017-01-18 3 views
0

Хорошо, я сохраню это короткое и точное.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 <br /> 
} 

Так этот код здесь делает расчет для total каждый раз foreach петли, каждая петля дает большое общую для sumKG, но тогда for loop делает петлю foreach еще раз, что он должен, и делает новый расчет по новым данным из-за другого кода sql, который у меня также есть, однако он добавляет, что новый расчет до старого значения sumKG. Поэтому в этом случае я знаю, что первый foreach loop даст 23000 sumKG, а во втором раунде он даст 5000, но в этом случае он дает мне 23000, затем 28000 (23000 + 5000) и т. Д., Я не хочу, чтобы это путь, я хочу 23000, а затем 5000.

Это имеет смысл? И есть ли решение?

ответ

2

Установите переменную в ноль, прежде чем снова идти через петлю:

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

Ха-ха OFC! Большое спасибо! –

+1

9 минут таймер на принимать ответ, но его приход! –

 Смежные вопросы

  • Нет связанных вопросов^_^