2
我需要觀察一個以固定間隔產生值的流,但是值太多了,所以我想對每產生十個值說一個值。從Observable中獲取每個第N個元素
相當於非RX的方式來做到這一點,將是:
int step = 10; // take every 10th value
var numbers = Enumerable.Range(0, 100).Where((e, i) => i % step == 0);
什麼是慣用的方式做,在接收?
可以做同樣的:'Observable.Range(0,100)。凡((值,指數)=>指數%步驟== 0) ' – Evk
考慮在Rx中使用油門。 http://www.introtorx.com/content/v1.0.10621.0/13_TimeShiftedSequences.html – MistyK
@MistyK不幸的是Throttle不會這樣做,因爲我的元素定期到達,並根據文檔_「Throttle方法是唯一的對於產生可變速率值的序列很有用,以恆定速率產生值的序列(如Interval或Timer),如果它們產生的值比節流期更快,或者它們的所有值都是如果產生的值比節流時間段慢,就會傳播。「_這是因爲節流閥是基於時間的,而不是基於索引/基於計數的。 – heltonbiker