3

我最近开始使用C#rx版本,想知道如何解决以下问题:

我正在使用refit通过以下方式从服务器获取项目列表:

[Get("/items")]
IObservable<List<Item>> GetItems();

我想在之后处理每个项目,但我没有找到如何做到这一点。我知道在 RxJava 中有一个名为的运算符flatMapIterable(),它允许我处理每个项目,但我没有找到与C#类似的东西。

谢谢

4

2 回答 2

4

根据文档,您需要.SelectMany.

[Get("/items")]
IObservable<List<Item>> GetItems() 
{
    observable.SelectMany(t => t);
}

Rx.NET repo中,您可以查看源代码的实现 - 如果您有兴趣。

于 2016-05-16T18:31:27.330 回答
2

你需要SelectMany();

IObservable<List<Item>> observable = new List<List<Item>>().ToObservable();
var flattened = observable.SelectMany(i => i);
于 2016-05-16T18:29:19.933 回答