我试图弄清楚我是否有一个拥有自己的对象列表的对象列表,如何获得总计数。例如:
public class FileWrapper {
List<File> Files
}
public class File {
...
}
因此,使用List包装器,如何获取文件总数。
wrappers.ForEach(f => f.Files.Count).Count()
答案 0 :(得分:6)
您希望Sum
每个列表的计数,而不是Count
每个列表的计数:
var sum = wrappers.Sum(file => file.Files.Count);
答案 1 :(得分:0)
wrappers.Select(f => f.Files.Count).Sum()
答案 2 :(得分:0)
您也可以使用SelectMany
。
var sum = wrappers.SelectMany(wrapper => wrapper.Files).Count();
我无法访问VS.所以它是眼睛编译的。
就像@Servy所说,这是一个坏主意:
这会强制迭代每个内部列表以确定它 算一下,当他们能够归还已知的伯爵时。