c# - react 性扩展滑动时间窗口

标签 c# system.reactive

我收到了一系列股票报价,我想获取过去一小时内的所有数据并对其进行一些处理。我正在尝试通过 react 性扩展 2.0 来实现这一点。我在另一篇文章中读到使用 Interval,但我认为这已被弃用。

最佳答案

这个扩展方法能解决您的问题吗?

public static IObservable<T[]> RollingBuffer<T>(
    this IObservable<T> @this,
    TimeSpan buffering)
{
    return Observable.Create<T[]>(o =>
    {
        var list = new LinkedList<Timestamped<T>>();
        return @this.Timestamp().Subscribe(tx =>
        {
            list.AddLast(tx);
            while (list.First.Value.Timestamp < DateTime.Now.Subtract(buffering))
            {
                list.RemoveFirst();
            }
            o.OnNext(list.Select(tx2 => tx2.Value).ToArray());
        }, ex => o.OnError(ex), () => o.OnCompleted());
    });
}

关于c# - react 性扩展滑动时间窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11559255/

相关文章:

c# - 事务在 nhibernate 中是如何工作的?

ios - ReactiveX RxSwift 从可观察对象的连接中获得第一个非错误

c# - 观察同步和异步结果

c# - 在 Azure 上的 Web API 中获取 TLS 协议(protocol)版本

c# - ASP.NET 设置 GridView 中 DataBound 列的宽度

c# - 一般而言,Angular 2 和 .Net Core 2.0 应用程序如何相互交互以及开发周期?

c# - 以编程方式在 Azure Function 中设置 RunOnStartup?

rx-java - RX Java 是服务器端工程师需要的东西吗?

c# - Cron 可观察序列

c# - 如何清除 ReplaySubject 上的缓冲区?