我想在我的可观察序列中附加一个额外的"关闭"项。是否有一个响应式LINQ扩展,就像StartWith
一样,但对于一个可观察序列的结束?
下面是我想要的一个近似值,尽管它似乎没有触发最后一个元素:
public static IObservable<TSource> EndWith<TSource>(this IObservable<TSource> source, TSource element)
{
return source.Concat(Observable.Return(element));
}
你的"近似"是正确的答案。Concat
将把element
添加到源流的末尾,但仅当:
- 源完成
- 源没有错误
也许如果你没有得到它,你的source
流实际上没有终止?
如果你向我们展示更多你的代码可能会更好。没有一个"开箱即用"的API方法(如StartsWith
)为您做到这一点,但使用Concat
+ Observable.Return
是一个非常合理的方式来做自己。
系统。响应包包含非标准的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);