在 C# 中生成日期范围数组或列表
在使用日期作为 X 轴的图表中生成多系列数据时,拥有涵盖整个范围的完整日期列表至关重要。这确保了所有系列都具有一致的日期值,即使它们并非所有日期都有数据。
LINQ 方法
一种高效的方法是使用 LINQ:
<code class="language-csharp">Enumerable.Range(0, 1 + end.Subtract(start).Days) .Select(offset => start.AddDays(offset)) .ToArray();</code>
此代码创建一个日期列表,从日期范围的开始 (start) 开始,每天递增一次,直到到达范围的结束 (end)。
For 循环方法
或者,您可以使用 for 循环:
<code class="language-csharp">var dates = new List<DateTime>(); for (var dt = start; dt <= end; dt = dt.AddDays(1)) { dates.Add(dt); }</code>
此循环以与 LINQ 方法相同的方式创建日期列表。
填充值
要为缺失的日期填充系列的默认值,您可以枚举完整范围内的所有日期并填充它们:
<code class="language-csharp">var paddedSeries = fullDates.ToDictionary(date => date, date => timeSeries.ContainsDate(date) ? timeSeries[date] : defaultValue);</code>
此代码创建一个字典,其中键是日期,值是数据。如果系列中存在日期,则检索其对应的值;否则,分配默认值。
以上是如何在 C# 中生成日期范围数组或列表?的详细内容。更多信息请关注PHP中文网其他相关文章!