嵌套的IEnumerable/Arrays,如何访问深层嵌套的属性

嵌套的IEnumerable/Arrays,如何访问深层嵌套的属性

问题描述:

所以我有一个包含队列(列表)的IEnumerable对象,每个项目包含3个属性。其中一个属性(“States”)包含另一个数组...此数组包含属性“Messages”。相当混乱,这就是为什么我在调试中拍摄了本地照片。 I had to edit sensible data out, sorry guys 不得不编辑合理的数据。嵌套的IEnumerable/Arrays,如何访问深层嵌套的属性

我只有这个IEnumerable对象来处理。我如何到达财产“消息”?

我已经尝试了一些Lambda表达式...喜欢

var _message = _criticalData.Select(item1 => item1.States.Select(item2 =>item2.Messages).ToArray()).ToArray() 

然后,我可以创造一个新的字符串数组/列表和foreach每个_message进去。

至少我认为它有效(不能在家测试)。但它也会非常慢。有没有其他方法可以做到这一点?

+0

它本来如果你的表现,而不是类的图像更多更多的帮助。 – user3185569

+0

我知道,可惜我无法远程访问代码。我不想用4张类的图片来垃圾回答这个问题 – coding4life

+0

'item1'和'item2'(这是国家本身)是否都有States属性? – user3185569

你要拉平多个列表,所以使用SelectMany像:

string[] output = _criticalData.SelectMany(outer => 
          outer.States.SelectMany(inner => inner.Messages)) 
          .ToArray(); 
+0

圣,我什至不知道有selectmany方法....谢谢。 :) – coding4life