private object FindDayDataByYearMonth(DateTime thisTime, List<DailyDialysisWayStatistic> baseStatisticsList, List<string> dialysisWayList) { //源格式:天-透析方式-数量 List<Tuple<string, object>> tupleList = new List<Tuple<string, object>>(); //获取某个月的天数 var days = DateTime.DaysInMonth(thisTime.Year, thisTime.Month); dialysisWayList.ForEach(y => { int[] countGroups = new int[days]; for (int i = 1; i <= days; i++) { //构建每天的日期 var tempTime = new DateTime(thisTime.Year, thisTime.Month, i); var count = baseStatisticsList.Where(z => z.DialysisWay == y && z.DialysisDate == tempTime).Sum(x => x.Frequency); countGroups[i - 1] = count; } tupleList.Add(new Tuple<string, object>(y, countGroups)); }); var dayIndexs = GetEveryDayIndex(days); return new { dayIndexs, tupleList }; }
/// <summary>
/// 获取传入值得从0->N 累计序列
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
private int[] GetEveryDayIndex(int num)
{
if (num <= 0)
return null;
int[] days = new int[num];
for (int i = 1; i <= num; i++)
{
days[i - 1] = i;
}
return days;
}
结果:
dayIndexs tupleList