2015-02-10 62 views
1

我想弄清楚,如果我有一個對象的列表有自己的對象列表,如何獲得總數。例如:linq,計算計數的計數

public class FileWrapper { 
    List<File> Files 
} 

public class File { 
    ... 
} 

因此,如果使用List包裝器,我如何獲得文件的總數。

wrappers.ForEach(f => f.Files.Count).Count() 

回答

6

你想Sum每個列表的數量,每個列表的不Count計數:

var sum = wrappers.Sum(file => file.Files.Count); 
0

您還可以使用SelectMany

var sum = wrappers.SelectMany(wrapper => wrapper.Files).Count(); 

我沒有訪問VS.所以它是眼睛編譯的。

像@Servy說,這是一個壞主意:

這迫使每一個內部列表進行迭代,以確定其 計數,當他們能夠返回剛纔已經知名的伯爵。

+0

這會強制每一個內部列表迭代以確定它的計數,當它們能夠返回已知的Count時。 – Servy 2015-02-10 17:41:17

+0

你是對的,我留下我的答案在這裏作爲信息的目的。 – Orace 2015-02-10 17:57:56