public class Results
{
public DateTime Date {get; set;}
public decimal Result {get; set;}
}
public class Sums
{
public decimal YearlySum {get; set;}
public decimal MonthlySum {get; set;}
public DateTime Date {get; set;}
}
我有一个Results对象的集合。
我想根据日期填写每月,每月总和的总和列表。
YearlySum是所提供日期年份(直到提供日期)的所有结果值的总和,而MonthlySum是提供日期月份(直到提供日期)的结果值之和
如何使用Linq?
答案 0 :(得分:1)
像这个函数应该做的工作:
public Sum GetSumFromResultsAndDate(IEnumerable<Results> results, DateTime date) {
return new Sum {
Date = date,
MonthlySum = results
.Where(r => r.Date.Year == date.Year && r.Date.Month == date.Month && r.Date <= date)
.Sum(r => r.Value) ,
YearlySum = results
.Where(r => r.Date.Year == date.Year && r.Date <= date)
.Sum(r => r.Value)
}
}
(使所有结果的总和与月度总和的提供日期相同,并且所有结果的总和与年度总和的提供日期相同)
编辑:添加&#34;结果日期低于提供的日期&#34;根据问题澄清的条件