2

Observable.Iterate() の使用を必要とする Reactive Extensions のいくつかの例をオンラインで見つけていますが、NuGet の Rx バージョン 1.0.10621.0 のパッケージには含まれていないようです。私がそれをすべて間違っていない限り?

名前が変更されたと思いますが、それに関する投稿は見つかりません。誰でも知っていますか?

4

2 に答える 2

4

Rxフォーラムから:

ウェスダイアー:

Observable.Iterateはどうですか?

Func、Task>をとるObservable.Createを使用します。これは、非同期待機を使用して駆動することを除いて、Iterateとまったく同じように機能します。

于 2011-07-26T02:02:02.747 に答える
3

拡張メソッド Iterate は次のようになります。

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);
}
于 2015-03-02T13:58:46.250 に答える