我的数据如下表所示(为简单起见,我排除了任何与排序顺序无关的值)。
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)个项目,包括孩子,如果有帮助的话,应该大部分排序。