var totalParentsWithThisChild =
(from p in parent
from c in parent.Child
where c.someField > someValue
select parent
).Count();
这似乎让我的孩子有一些提起> somevalue,
我喜欢计算有孩子的父母,其中someField> someValue,我怎么能这样做?
答案 0 :(得分:1)
您可以使用Any
检查是否有符合条件的孩子。并且你可以使用带有谓词的Count
来查找有这些孩子的父母的数量:
parent.Count(p => p.Child.Any(c => c.someFiled > someValue))
注意:我建议您使用复数形式的名称来收集:父母,孩子
略微查询语法:
var totalParentsWithThisChild =
(from p in parent
where p.Child.Any(c => c.someFiled > someValue)
select p).Count()
因为查询语法中不支持Any
和Count
扩展方法。为避免丑陋的括号,您可以将此查询分为两部分:
var parentsWithThisChild =
from p in parent
where p.Child.Any(c => c.someFiled > someValue)
select p;
var totalParentsWithThisChild = parentsWithThisChild.Count();
但同样,在这种情况下,纯方法语法要短得多。