是否有像 StartWith 这样的扩展,但用于可观察序列的结尾?
Is there an extension like StartWith but for the end of an observable sequence?
我想在我的可观察序列中附加一个额外的 "closing" 项目。是否有类似 StartWith
但用于可观察序列结尾的 Reactive LINQ 扩展?
这是我想要的近似值,尽管它似乎没有触发最后一个元素:
public static IObservable<TSource> EndWith<TSource>(this IObservable<TSource> source, TSource element)
{
return source.Concat(Observable.Return(element));
}
您的 'approximation' 是正确答案。 Concat
会将 element
添加到源流的末尾,但前提是:
- 来源完成
- 来源没有错误
如果您没有理解,也许您的 source
流实际上并未终止?
如果您向我们展示更多您的代码等可能会更好。
没有 'out of the box' API 方法(如 StartsWith
)可以为您执行此操作,但是使用 Concat
+ Observable.Return
是一种非常合理的方法自己做。
System.Reactive package contains 非标准 Append
和 Prepend
运算符。
// Append a value to an observable sequence.
public static IObservable<TSource> Append<TSource>(this IObservable<TSource> source,
TSource value);
// Prepend a value to an observable sequence.
public static IObservable<TSource> Prepend<TSource>(this IObservable<TSource> source,
TSource value);
我想在我的可观察序列中附加一个额外的 "closing" 项目。是否有类似 StartWith
但用于可观察序列结尾的 Reactive LINQ 扩展?
这是我想要的近似值,尽管它似乎没有触发最后一个元素:
public static IObservable<TSource> EndWith<TSource>(this IObservable<TSource> source, TSource element)
{
return source.Concat(Observable.Return(element));
}
您的 'approximation' 是正确答案。 Concat
会将 element
添加到源流的末尾,但前提是:
- 来源完成
- 来源没有错误
如果您没有理解,也许您的 source
流实际上并未终止?
如果您向我们展示更多您的代码等可能会更好。
没有 'out of the box' API 方法(如 StartsWith
)可以为您执行此操作,但是使用 Concat
+ Observable.Return
是一种非常合理的方法自己做。
System.Reactive package contains 非标准 Append
和 Prepend
运算符。
// Append a value to an observable sequence.
public static IObservable<TSource> Append<TSource>(this IObservable<TSource> source,
TSource value);
// Prepend a value to an observable sequence.
public static IObservable<TSource> Prepend<TSource>(this IObservable<TSource> source,
TSource value);