与 flatMapIterable 等效的 Rx.NET 是什么?

Chi*_*hip 1 c# system.reactive

今天我终于偶然发现了一个非常简单的 RX 问题的解决方案:假设你有一个 Observable,它返回项目列表。喜欢Observable<List<String>>。您经常会从 Web API 收到类似这样的响应。

但是,您可能希望对单个项目进行操作,在本例中是字符串。

flatMapIterable来救援!这个方便的运算符通过映射函数Iterables将一个流扁平化为从这些单个项目生成的流Iterables

RxJava:扁平化迭代流 | 斯文·本德尔

如果这很重要,我正在用 .NET Core 编写。

实施例在RxJava:转换Observable<List<Car>>到的序列Observable<Car>中RxJava

Avn*_*tan 5

将项目集合映射到项目聚合集合的 LINQ 操作是SelectMany. 此操作也存在于 System.Reactive 中,允许您从一组 Observable 中创建单个 Observable:

http://www.introtorx.com/content/v1.0.10621.0/08_Transformation.html#SelectMany

Observable.Range(1,3)
          .SelectMany(i => Observable.Range(1, i))
          .Dump("SelectMany");
Run Code Online (Sandbox Code Playgroud)

...我们现在将得到一个输出,其中每个序列 ([1], [1,2] 和 [1,2,3]) 的结果被展平以产生 [1,1,2,1,2,3] .

SelectMany-->1
SelectMany-->1
SelectMany-->2
SelectMany-->1
SelectMany-->2
SelectMany-->3
SelectMany completed
Run Code Online (Sandbox Code Playgroud)