我正在沿着日期在X轴上生成多系列图形。
问题在于,并非图中的所有系列在日期范围内都有相同的日期。这意味着,如果我选择2月1日至4月30日,则一个系列的数据可能会始于2月1日,但只能持续到3月底,而另一个系列的数据可能会覆盖整个日期范围。
这使我需要创建的图表倾斜。开始,给定在查询开始时采用的日期范围,我想生成一个日期列表并填充要绘制图形的数据,对于那些没有数据的日期,用0填充这些序列。
LINQ:
Enumerable.Range(0, 1 + end.Subtract(start).Days) .Select(offset => start.AddDays(offset)) .ToArray();
对于循环:
var dates = new List<DateTime>(); for (var dt = start; dt <= end; dt = dt.AddDays(1)) { dates.Add(dt); }
编辑:对于在时间序列中使用默认值填充值,您可以枚举整个日期范围内的所有日期,并直接从序列中选择某个日期的值(如果存在),否则使用默认值。例如:
var paddedSeries = fullDates.ToDictionary(date => date, date => timeSeries.ContainsDate(date) ? timeSeries[date] : defaultValue);