C# 响应式扩展 - 遍历 IObservable<List<Item>> 的项目
C# Reactive Extensions - Iterate through items of IObservable<List<Item>>
我最近开始使用 C# 的 rx
版本,想知道如何解决以下问题:
我正在使用 refit 通过以下方式从服务器获取项目列表:
[Get("/items")]
IObservable<List<Item>> GetItems();
我想事后处理每个项目,但我不知道如何做。我知道在 RxJava 中有一个名为 flatMapIterable()
的运算符,它允许我处理每个项目,但我没有找到与 C#.
类似的东西
谢谢
你需要SelectMany();
IObservable<List<Item>> observable = new List<List<Item>>().ToObservable();
var flattened = observable.SelectMany(i => i);
根据文档,您需要 .SelectMany
.
[Get("/items")]
IObservable<List<Item>> GetItems()
{
observable.SelectMany(t => t);
}
在 Rx.NET repo 中,您可以查看源代码的实现 - 如果您有兴趣。
我最近开始使用 C# 的 rx
版本,想知道如何解决以下问题:
我正在使用 refit 通过以下方式从服务器获取项目列表:
[Get("/items")]
IObservable<List<Item>> GetItems();
我想事后处理每个项目,但我不知道如何做。我知道在 RxJava 中有一个名为 flatMapIterable()
的运算符,它允许我处理每个项目,但我没有找到与 C#.
谢谢
你需要SelectMany();
IObservable<List<Item>> observable = new List<List<Item>>().ToObservable();
var flattened = observable.SelectMany(i => i);
根据文档,您需要 .SelectMany
.
[Get("/items")]
IObservable<List<Item>> GetItems()
{
observable.SelectMany(t => t);
}
在 Rx.NET repo 中,您可以查看源代码的实现 - 如果您有兴趣。