C#Reactive Extensions - 遍历IObservable的项目<list <item>&gt;

时间:2016-05-16 18:18:12

标签: c# system.reactive rx.net

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

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

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

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

谢谢

2 个答案:

答案 0 :(得分:4)

根据文档,您需要.SelectMany

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

Rx.NET repo中,您可以查看来源的实施情况 - 如果您有兴趣的话。

答案 1 :(得分:2)

您需要SelectMany();

IObservable<List<Item>> observable = new List<List<Item>>().ToObservable();
var flattened = observable.SelectMany(i => i);