Мой проект MVC5. У меня есть таблица с несколькими строками для одного и того же дня, мне нужно получить сумму этой записи за каждый день, я использую следующее:
var days = db.Nutrition.Where(x => x.Day >= fromDate
&& x.Day <= toDate).DistinctBy(x => x.Day).AsEnumerable().ToList();
List<double?> calories = new List<double?>();
foreach (var item in days)
{
calories.Add(days.Where(c => c.Day==item.Day).Select(x => x.Calories).Sum());
}
Я получаю список с итогами. Теперь мне нужно сделать новый список из двух столбцов.
Я сделал следующую модель:
public class Consumption
{
public virtual double? Calories { get; set; }
public virtual string Name { get; set; }
}
Я попытался использовать следующее для создания нового списка:
List<Consumption> newList = new List<Consumption>();
var name = new Consumption { Name = "name" };
foreach (var item in calories)
{
newList.Add(name, Calories = (double)item.Value);
}
Я получаю следующую ошибку:
Название «Калории» не существует в текущем контексте
Редактировать
Благодаря комментарию Стивена:
Я просто использовал одну строку для достижения того же результата
var results = db.Nutrition.Where(x => x.Day >= fromDate && x.Day <= toDate).GroupBy(l => l.Day)
.Select(cl => new { Name = "name", Calories = cl.Sum(c => c.Calories)}).ToList();