2016-07-26 246 views
0

所以我有一個包含隊列(列表)的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

回答

2

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

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

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