如何通过一个值"延迟"可观察序列?

Col*_*nic 0 .net c# system.reactive

在Reactive Extensions中,如何将一个可观察序列延迟一个值?例如:

original: 2 3 5 7 9   
delayed:    2 3 5 7
Run Code Online (Sandbox Code Playgroud)

要清楚,我想将序列延迟一步.这与延迟恒定时间不同.

Eni*_*ity 6

试试这个:

var delayedByOne = source.Zip(source.Skip(1), (x, _) => x);
Run Code Online (Sandbox Code Playgroud)

但是如果你有一个冷可观察源,你可能需要这样做以避免运行两个并发源:

var delayedByOne = source.Publish(s => s.Zip(s.Skip(1), (x, _) => x));
Run Code Online (Sandbox Code Playgroud)