我想弄清楚,如果我有一个对象的列表有自己的对象列表,如何获得总数。例如: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