【发布时间】:2012-05-02 03:53:56
【问题描述】:
我的数据如下表所示(为简单起见,我排除了任何与排序顺序无关的值)。
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)个项目,包括孩子,如果有帮助,应该主要进行排序。
【问题讨论】:
标签: c# sql-server-2008 sorting collections