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

Count()== 0ではなくAny()メソッドを使用することをお勧めします。.Any()と.Count()>0のどちらのメソッドの方がパフォーマンスが優れているかを確認してください。

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