私は3つのデータセットを持っています。 DataSet 1にはすべての親Idがあり、DataSet 2にはDataSet 1の子があり、DataSet 3にはDataSet3の子があります。ツリーの作成:再帰または式ツリーC#
DataSet1のIDをルートノードとして持つツリー構造のデータセットを構築したいとします。
のDataSetの1-
<NewDataSet>
<Table>
<Id>A</Id>
<Desc>ABC</Desc>
</Table>
<Table>
<Id>B</Id>
<Desc>DEF</Desc>
</Table>
<Table>
<Id>C</Id>
<Desc>PQR</Desc>
</Table>
</NewDataSet>
DataSetの任意のルートノードまたは場合を指定しない場合は、このようにする必要があり2 -
<NewDataSet>
<Table>
<ParentId>A</ParentId>
<Id>AA</Id>
<Desc>ABC</Desc>
</Table>
<Table>
<ParentId>B</ParentId>
<Id>BB</Id>
<Desc>DEF</Desc>
</Table>
<Table>
<ParentId>B</ParentId>
<Id>CB</Id>
<Desc>PQR</Desc>
</Table>
</NewDataSet>
のDataSetの3-
<NewDataSet>
<Table>
<ParentId>AA</ParentId>
<Id>AAA</Id>
<Desc>ABC</Desc>
</Table>
<Table>
<ParentId>BB</ParentId>
<Id>BBB</Id>
<Desc>DEF</Desc>
</Table>
<Table>
<ParentId>BB</ParentId>
<Id>CBB</Id>
<Desc>PQR</Desc>
</Table>
</NewDataSet>
の検索結果をI子ノードを必要とするかしないか:
GetTree(null、false);
<NewDataSet>
<Table>
<Id>A</Id>
<Desc>ABC</Desc>
<HasChildren>True</HasChildren>
<NewDataSet>
<Table>
<Id>AA</Id>
<Desc>ABC</Desc>
<HasChildren>True</HasChildren>
<DataSet>
<Table>
<Id>AAA</Id>
<Desc>ABC</Desc>
<HasChildren>False</HasChildren>
</Table>
</DataSet>
</Table>
</NewDataSet>
</Table>
<Table>
..... //All Root Nodes and their children
</Table>
</NewDataSet>
しかし、もし私がIDを提供し、私がIDの子供を望むかどうかを指定すると、 GetTree( "BB"、true); GetBree( "BB"、false);
<NewDataSet>
<table>
<Id>BB</Id>
<Desc>ABC</Desc>
<HasChildren>True</HasChildren>
</table>
</NewDataSet>
私はこれをNested Foreachで行うことができますが、私はこの操作を実行するための再帰関数を書きたいと思います。 私はいくつかの例で2日間インターネットを検索しており、これを行うことはできません。 ウェブサイトへの参照があれば、私は多くの助けになります。