如何将生成的Rx Observable类型从int更改为double?

时间:2014-07-16 08:57:59

标签: c# system.reactive

我有以下代码:

var timer = Observable.Timer(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(10));
timer.Subscribe(Console.WriteLine, ()=>Console.WriteLine("Completed"));

产生从0到...的整数

但问题是为什么整数? 是否有可能在0.1,0.2,0.3中产生双倍而无需额外计算?

1 个答案:

答案 0 :(得分:3)

Rx Timer将生成增量长值,您可以使用Select语句进一步转换为其他值。 在您的情况下,如果您想获得双值列表,您可以简单地更改您的计时器声明:

var timer = Observable.Timer(TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(10)).Select(i => i / 10.0);
timer.Subscribe(Console.WriteLine, ()=>Console.WriteLine("Completed"));

我认为如果不添加select运算符就不能这样做,因为它需要重写Timer生成器函数,这应该不会那么困难,但可能会很棘手。