我想追加一个额外的"关闭"项目到我的可观察序列。是否存在类似于StartWith
的Reactive LINQ扩展,但是对于可观察序列的结尾?
这是我想要的近似值,虽然它似乎没有触发最后一个元素:
public static IObservable<TSource> EndWith<TSource>(this IObservable<TSource> source, TSource element)
{
return source.Concat(Observable.Return(element));
}
答案 0 :(得分:5)
你的'近似'是正确的答案。 Concat
会将element
添加到源流的末尾,但仅限于:
也许如果你没有得到它,你的source
流实际上并没有终止?
如果您向我们展示更多代码等可能会更好。
没有“开箱即用”的API方法(如StartsWith
)为您执行此操作,但使用Concat
+ Observable.Return
是一种非常合理的方法。
答案 1 :(得分:0)
System.Reactive软件包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);