2010-02-06 43 views
0

比方說,我有如何使用linq選擇對象子成員?

class objectA 
{ 
string name; 
} 

class objectB 
{ 
List<objectA> la = new List<objectA>(); 
} 

main() 
{ 
List<objectB> lb = new List<objectB>(); 

/*some operations that results in lb having many objectB objects 
and each objectB having many objectA. 

lb 
    objectB1 
     objectA1 
      somestring1 
     objectA2 
      somestring2 
     objectA3 
      somestring3 
     . 
     . 
     objectA166 
      somestring4 
    objectB2 
     objectA167 
      somestring5 
     objectA168 
      somestring6 
     objectA169 
      somestring7 
     . 
     . 
     objectA176 
      somestring8 
    . 
    . 
    . 
    objectB5 
     objectA267 
      somestring9 
     objectA268 
      somestring10 
     objectA269 
      somestring11 
     . 
     . 
     objectA276 
      somestring12 
*/ 
} 

什麼是LINQ查詢,只會讓我所有的somestring?

理想情況下,我可以做一些諸如

var w = from f in lb select lb.(each objectB).(each objectA).name 

我目前的解決辦法是通過集合枚舉每個名字添加到列表中,但我認爲必須有一個LINQ的方式來做到這一點。

回答

1

你可以這樣做:

var w = from b in lb 
     from a in b.la 
     select a.name; 
+0

謝謝!太容易了 - 我在想我正在搞亂.ToList(),從來沒有想過要做你剛做的事情! – Matt 2010-02-06 01:31:08