我如何从IObservable获取历史记录?

Chr*_*ebb 1 c# system.reactive

我通过Observable监控股票报价流,我认为它符合某种条件,例如 -

Observable
.Empty<Quote>
.Where(q => q.Price > watchPrice)
.Subscribe(q => { // do stuff } );
Run Code Online (Sandbox Code Playgroud)

现在,在"做东西"的时候,我理想的是得到最后3个"q"来自where子句,所以有点像BufferWithCount(),但每个条目都包含Subscribe()包含最后3个条目.这样我就可以保存导致条件评估的报价更改的快照.

伪大理石图 -

in  -  a     b     c     d     e     f
out -  a     ba    cba   dcb   edc   fde
Run Code Online (Sandbox Code Playgroud)

任何想法都赞赏

Ser*_*hov 5

像这样?

    static void Main()
    {
        new[] {"a", "b", "c", "d", "e", "f"}
            .ToObservable()
            .Scan(Enumerable.Empty<string>(), (x, y) => x.StartWith(y).Take(3))
            .Subscribe(x =>
                           {
                               x.Run(Console.Write);
                               Console.WriteLine();
                           });
        Console.ReadLine();
    }
Run Code Online (Sandbox Code Playgroud)