linq-仅选择最低级别的父/子查询

linq-仅选择最低级别的父/子查询,linq,Linq,给定公共父/子表: Table A Column Id int Column Parent_Id int Column Description text 我只想得到没有任何子节点的节点 1,null,"PARENT A" 2,null,"PARENT B", 3,null,"PARENT C", 100,1,"CHILD A1", 101,1,"CHILD A2", 102,2,"CHILD B1" 因此,对于我的结果集,我只想得到: 父C(因为它没有任何子元素)和子A1、B2、B1。您不

给定公共父/子表:

Table A
Column Id int
Column Parent_Id int
Column Description text
我只想得到没有任何子节点的节点

1,null,"PARENT A"
2,null,"PARENT B",
3,null,"PARENT C", 
100,1,"CHILD A1",
101,1,"CHILD A2",
102,2,"CHILD B1"
因此,对于我的结果集,我只想得到:


父C(因为它没有任何子元素)和子A1、B2、B1。

您不能确切地说您正在使用LINQ查询什么,但总体思路是

var leafNodes = nodes.Where(n => nodes.Count(n1 => n1.Parent_Id == n.Id) == 0);
您可能希望使用Any()方法,而不是Count()==0。看

工作起来很有魅力:)谢谢!
var itemsWithoutChildren = nodes.Where(item=>!nodes.Any(innerItem=>innerItem.Parent_Id==item.Id))