獲取正在執行的聚合
假設你有一個熱門的觀察者,你很想保留它的數量。它可能是 IObservable<StockTick>
,你想要保持平均交易量的計數。你可以使用 Scan
。
var tradeVolume = stockTicks.Select(e => e.Price)
.Scan(0.0m, (aggregated, newtick) => aggregated + newtick)
.Select((aggregated, index) => aggregated / (index + 1))
現在你可以簡單地訂閱你的交易量,該交易量在收到每個新的 Tick 時實時更新。
var subscription = tradeVolume.Subscribe(vol => Console.WriteLine("New trade volume is {0}", vol);