哪里是Observable.Iterate()在Rx 1.0.10621.0/1.1.10621.0



我在网上找到了一些需要使用Observable.Iterate()的响应式扩展的例子,但是NuGet, Rx版本1.0.10621.0的包似乎不包括它。除非我做错了?

我假设它被重命名了,但我找不到任何关于这方面的帖子。有人知道吗?

From Rx Forum:

韦斯代尔:

Observable.Iterate呢?

使用Observable。创建一个函数,任务>它的工作原理与迭代完全相同,除了它使用异步等待驱动它

一个扩展方法迭代可以像这样:

public static IObservable<T> Iterate<T, TIter>([NotNull] this IObservable<TIter> source, [NotNull] T iterationStart, [NotNull] Func<TIter, T, T> iterator)
{
    return Observable.Create<T>(observer =>
        {
            T previousElement = iterationStart;
            return source.Subscribe(
                    value =>
                        {
                            T currentElement = iterator(value, previousElement);
                            observer.OnNext(currentElement);
                            previousElement = currentElement;
                        },
                    observer.OnError,
                    observer.OnCompleted
                    );
        }).StartWith(iterationStart);
}

相关内容

  • 没有找到相关文章