2011-09-20 50 views
7

我有一個類別列表A,類別A包含類別B的列表。我想在類A的所有實例中對B的所有實例進行操作。Linq - 在列表上操作

var myListOfA = new List<A>(); 

class A 
{ 
    public List<B> ListOfB; 
} 

我怎麼能遍歷所有Bforeach(var b in myListOfA.ListOfB){}

回答

9

您可以使用SelectMany

foreach(var b in myListOfA.SelectMany(a => a.ListofB)) 

ideone.com看到它在行動。

+1

啊,我已經嘗試了'選擇',它沒有工作(現在看起來很明顯),發現了。謝謝。 – Chris

2

,對我是怎麼想的嵌套對象的行之有效的另一種方式是:

(from A objA in myListOfA 
    from B objB in objA.ListOfB 
     select objB); 

這將「扇出」 B公司的主列表中的所有A的內部列表。

+0

請注意,這是'SelectMany'的語法糖,但我同意,它有時更具可讀性。 – Jens

+0

是的,它絕對只是另一種使用selectmany的方法,只是想在這裏作參考之用 –