如何在 Rx.NET 和 UniRx 中编写 SelectManyLatest 运算符

How to write a SelectManyLatest operator in Rx.NET and UniRx

SelectManyLatest 是必要的运算符。 但是所有互联网都不回答你怎么写。 那怎么办?

SelectManyLatest 是其他 Rx 框架中的 FlatMapLatest。 此运算符类似于 SelectMany,但如果发生新的发射,它会完成之前的订阅。

添加为扩展

public static IObservable<V> SelectManyLatest<T, V>(this IObservable<T> source, Func<T, IObservable<V>> selector)
{
    return source
        .Select(selector)
        .Switch();
}