为图表生成不同数据范围的日期列表
当在日期轴上绘制多个序列的图表时,经常会遇到不同序列在指定日期范围内具有不同数据范围的情况。这种差异可能会歪曲图表。
为了解决这个问题,我们可以根据整体日期范围生成一个完整的日期列表,并相应地填充数据,用零填充缺失值。以下是实现此目的的两种方法:
1. 使用LINQ:
<code class="language-csharp">var dates = Enumerable.Range(0, 1 + end.Subtract(start).Days) .Select(offset => start.AddDays(offset)) .ToArray();</code>
2. 使用For循环:
<code class="language-csharp">var dates = new List<DateTime>(); for (var dt = start; dt <= end; dt = dt.AddDays(1)) { dates.Add(dt); }</code>
为了填充缺失值,您可以枚举完整范围内的所有日期,如果存在,则从序列中检索每个日期的值;否则,使用默认值。例如:
<code class="language-csharp">var paddedSeries = fullDates.ToDictionary(date => date, date => timeSeries.ContainsKey(date) ? timeSeries[date] : defaultValue);</code>
以上是如何生成完整的日期列表以绘制不同范围的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!