Как получить сумму значений из списка?

Это код, который я написал в View, и я хочу отображать общее количество калорий в конце каждого дня, в зависимости от существующих пищевых продуктов. Как я могу это сделать? Здесь у меня есть значения калорий непосредственно из моей базы данных.

  @model Database.MealPlanner
@{
    ViewBag.Title = "Details";
}
<div>
    <h4>Aliments</h4>
    <hr />
    <ul>

        @foreach (var weekDay in @Model.MealPlannerAliments.GroupBy(q => q.WeekDay).ToList())
        {
            <li class = "custom-list-heading list-unstyled"><b>@weekDay.Key</b></li>
            foreach (var item in weekDay)
            {
                <li id = "alimentsByDay">

                    <div>
                        <p>@item.Aliment.Name (Calories: @item.Aliment.NutritionalValue.Calories  )</p>
                    </div>
                </li>
            }
        }

    </ul>
</div>

Вот пример. Я хочу отображать в конце дня, скажем: Общее количество калорий на марти: 618

Как получить сумму значений из списка?

Linq имеет sum (), посмотрите на это и посмотрите, решит ли он вашу проблему.

Phil Cooper 15.05.2018 14:27

У вас могут быть разные способы достижения этой цели: через клиент, через сервер, и это может быть реализовано по-разному для каждого выбранного вами решения. Кстати, я думаю, что лучше рассчитывать его на стороне сервера, модифицируя Модель представления, добавляя свойство «TotalCaloriesAmount», вычисляемое в контроллере. Правильная формула для получения этого результата должна быть MealPlannerAliments.GroupBy (q => q.WeekDay) .Sum (item => item.Aliment.NutritionalValue.Calories)

Sycraw 15.05.2018 14:31

@mplungjan Извините! Я только что отредактировал, и я тоже добавил картинку. У меня нет попытки решить эту проблему с помощью jQuery, потому что я не знаю, как это сделать. Я новичок в программировании.

Andre.A 15.05.2018 14:32
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
3
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете посмотреть на использование LINQ и метода расширения Сумма. Что-то вроде

weekDay.Sum(x => x.Aliment.NutritionalValue.Calories)

Большой! :) Рад был помочь

simonlchilds 16.05.2018 15:53

Другие вопросы по теме