私のデータは以下の表のようなものです (簡単にするために、並べ替え順序に関係のない値は除外しています)。
ID POSITION PARENT HASCHILDREN
------------------------------------------
1 1 0 False
2 3 0 True
3 2 0 False
4 1 2 False
5 2 2 False
私がやりたいことは、このデータを再帰的にオブジェクトに並べ替えることです。私が持っているオブジェクトはこのようなものです
public class ExampleObject
{
public int ID { get; set; }
public int Position { get; set; }
public int Parent { get; set; }
public bool HasChildren { get; set; }
public List<ExampleObject> Children { get; set; }
}
上記のオブジェクトは、この例では 2 層の深さしかありませんが、常に独自の子を持つことができるという意味で再帰的です。SOで結果を構造化する方法はわかりませんが、結果をどのようにしたいかのJSONを次に示します
[
{
ID: 1,
Position: 1,
Parent: 0,
HasChildren: false,
Children: []
},
{
ID: 3,
Position: 2,
Parent: 0,
HasChildren: false,
Children: []
},
{
ID: 2,
Position: 3,
Parent: 0,
HasChildren: true,
Children: [
{
ID: 4,
Position: 1,
Parent: 2,
HasChildren: false,
Children: []
},
{
ID: 5,
Position: 2,
Parent: 2,
HasChildren: false,
Children: []
}
]
}
]
私が知っていることは、リストが子を含む非常に大きな (10 ~ 20) アイテムではないということです。