嵌套的IEnumerable/Arrays,如何访问深层嵌套的属性
问题描述:
所以我有一个包含队列(列表)的IEnumerable对象,每个项目包含3个属性。其中一个属性(“States”)包含另一个数组...此数组包含属性“Messages”。相当混乱,这就是为什么我在调试中拍摄了本地照片。 不得不编辑合理的数据。嵌套的IEnumerable/Arrays,如何访问深层嵌套的属性
我只有这个IEnumerable对象来处理。我如何到达财产“消息”?
我已经尝试了一些Lambda表达式...喜欢
var _message = _criticalData.Select(item1 => item1.States.Select(item2 =>item2.Messages).ToArray()).ToArray()
然后,我可以创造一个新的字符串数组/列表和foreach每个_message进去。
至少我认为它有效(不能在家测试)。但它也会非常慢。有没有其他方法可以做到这一点?
答
你要拉平多个列表,所以使用SelectMany
像:
string[] output = _criticalData.SelectMany(outer =>
outer.States.SelectMany(inner => inner.Messages))
.ToArray();
+0
圣,我什至不知道有selectmany方法....谢谢。 :) – coding4life
它本来如果你的表现,而不是类的图像更多更多的帮助。 – user3185569
我知道,可惜我无法远程访问代码。我不想用4张类的图片来垃圾回答这个问题 – coding4life
'item1'和'item2'(这是国家本身)是否都有States属性? – user3185569