我想弄清楚,如果我有一個對象的列表有自己的對象列表,如何獲得總數。例如:linq,計算計數的計數
public class FileWrapper {
List<File> Files
}
public class File {
...
}
因此,如果使用List包裝器,我如何獲得文件的總數。
wrappers.ForEach(f => f.Files.Count).Count()
我想弄清楚,如果我有一個對象的列表有自己的對象列表,如何獲得總數。例如:linq,計算計數的計數
public class FileWrapper {
List<File> Files
}
public class File {
...
}
因此,如果使用List包裝器,我如何獲得文件的總數。
wrappers.ForEach(f => f.Files.Count).Count()
你想Sum
每個列表的數量,每個列表的不Count
計數:
var sum = wrappers.Sum(file => file.Files.Count);
wrappers.Select(f => f.Files.Count).Sum()
您還可以使用SelectMany
。
var sum = wrappers.SelectMany(wrapper => wrapper.Files).Count();
我沒有訪問VS.所以它是眼睛編譯的。
像@Servy說,這是一個壞主意:
這迫使每一個內部列表進行迭代,以確定其 計數,當他們能夠返回剛纔已經知名的伯爵。
這會強制每一個內部列表迭代以確定它的計數,當它們能夠返回已知的Count時。 – Servy 2015-02-10 17:41:17
你是對的,我留下我的答案在這裏作爲信息的目的。 – Orace 2015-02-10 17:57:56