我继承了一个通过可观察订阅访问远程(实时)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是一个列表,我将如何迭代它以在一个语句中显示所有项目的价格?
提前致谢。
答案 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));