每小时生成时间范围

Alv*_*vin 2 c#

我想从时间范围创建一个每小时对象列表。

c# 中有没有像 python pandas.timerange 这样的函数?

pandas.time_range("11:00", "21:30", freq="30min")
Run Code Online (Sandbox Code Playgroud)

Ily*_*nov 5

作为一种选择,利用 MoreLInq生成方法:

//variables used in both examples
var start = TimeSpan.FromHours(11);
var end = TimeSpan.FromHours(21).Add(TimeSpan.FromMinutes(30));

MoreEnumerable.Generate(start, span => span.Add(TimeSpan.FromMinutes(30)))
              .TakeWhile(span => span <= end)
Run Code Online (Sandbox Code Playgroud)

“本机”Linq 查询有点难看:

Enumerable.Range(0, int.MaxValue)
          .Select(multiplier => start.Add(TimeSpan.FromMinutes(30 * multiplier)))
          .TakeWhile(span => span <= end)
Run Code Online (Sandbox Code Playgroud)

两个查询都会产生:

11:00:00 
11:30:00 
12:00:00 
12:30:00 
13:00:00 
13:30:00 
14:00:00 
  ...
21:00:00 
21:30:00 
Run Code Online (Sandbox Code Playgroud)