获取有孩子有条件的孩子的父母数量


        var totalParentsWithThisChild =
            (from p in parent
             from c in parent.Child
             where c.someField > someValue
             select parent
            ).Count();

这似乎给我带来了某种效果的孩子,

我喜欢算上一个有孩子的父母在某个境地>某个value,我该怎么做?

您可以使用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()

因为不支持查询语法中的AnyCount扩展方法。为了避免丑陋的括号,您可以将此查询分为两个部分:

var parentsWithThisChild = 
      from p in parent
      where p.Child.Any(c => c.someFiled > someValue)
      select p;
var totalParentsWithThisChild = parentsWithThisChild.Count();

但是,在这种情况下,纯方法语法要短得多。

最新更新