0

给定一个共同的父/子表:

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。

4

2 回答 2

1

你没有说你到底在用 LINQ 查询什么,但总体思路是

var leafNodes = nodes.Where(n => nodes.Count(n1 => n1.Parent_Id == n.Id) == 0);
于 2012-08-05T14:06:07.880 回答
1

您可能更喜欢 Any() 方法而不是 Count() == 0。查看哪种方法性能更好:.Any() 与 .Count() > 0?

var itemsWithoutChildren = nodes.Where(item=>!nodes.Any(innerItem=>innerItem.Parent_Id==item.Id))
于 2012-08-05T14:07:39.737 回答