生成"措施"我每隔5秒就会做一次:
var Events = Observable.
Interval(TimeSpan.FromSeconds(5)).
Select(i => factory.GenerateRandomMeasure())
我想做同样的事情但基于现有的Measure系列。 我想我必须做一些事情:
var Events = existingList.ToObservable();
但是是否可以添加间隔概念以获得具有间隔的每个列表项? (例如,每5秒一项)
答案 0 :(得分:4)
您可以执行其中任何一项正常工作:
(1)
var Events =
Observable
.Interval(TimeSpan.FromSeconds(5))
.Zip(existingList, (i, x) => x)
.Select(i => factory.GenerateRandomMeasure());
(2)
var Events2 =
Observable
.Generate(
0,
x => x < existingList.Count,
x => x + 1,
x => existingList[x],
x => TimeSpan.FromSeconds(5))
.Select(i => factory.GenerateRandomMeasure());
第一个可能更明智,更容易编写。第二个非常值得学习,如果你不知道它,因为.Generate
非常强大并且可以在很多地方使用。