使用.NET反应式扩展定期调度IEnumerable

bra*_*ing 1 enumerable system.reactive

比方说,我有一个可枚举的

dim e = Enumerable.Range(0, 1024)
Run Code Online (Sandbox Code Playgroud)

我希望能够做到

dim o = e.ToObservable(Timespan.FromSeconds(1))
Run Code Online (Sandbox Code Playgroud)

因此,observable将每秒生成值,直到可枚举用尽.我无法想出一个简单的方法来做到这一点.

Per*_*Per 6

您可以将Interval与Zip一起使用以获得所需的功能:

var sequence = Observable.Interval(TimeSpan.FromSeconds(1))
                         .Zip(e.ToObservable(), (tick, index) => index)
Run Code Online (Sandbox Code Playgroud)

  • Zip有一个带有"IEnumerable"的重载. (2认同)