迭代一个可观察的列表?

时间:2014-07-27 22:48:23

标签: c# json linq system.reactive

我继承了一个通过可观察订阅访问远程(实时)json的api。

在很大程度上,很多成员只是字符串和双打,但有一些是列表,我不知道如何通过linq / takewhile和subscribe方法迭代它们。

mcSub.TakeWhile(p => p.Status == Market.OPEN).Subscribe(x => Console.WriteLine(DateTime.Now.Second + " - " + mc.Event.Name + " - " + x.Items[0].Prices));

如果x.Items是一个列表,我将如何迭代它以在一个语句中显示所有项目的价格?

提前致谢。

2 个答案:

答案 0 :(得分:3)

mcSub.TakeWhile(p => p.Status == Market.OPEN).Subscribe(x => x.Items.ForEach(y => Console.WriteLine(DateTime.Now.Second + " - " + mc.Event.Name + " - " + y.Prices)));

答案 1 :(得分:0)

* upvote on ThreeFx

另一个答案是flatmap / selectmany内部列表作为单个项目推送(如果这符合您的需要)

mcSub.TakeWhile(p => p.Status == Market.OPEN)
     .SelectMany(x=>x.Items)
     .Subscribe(item => Console.WriteLine(item.Prices));