我有一个可以容纳孩子的物品,因此每个物体的孩子都有孩子。所以想象一下是一个3级分层树。但是这个数字不固定,可以是4,5甚至6层次。我已经有了一个BindingList,它是所有Root节点的列表。有没有人知道将其转换成表格的直接方式?所以每个级别将是层次结构的一列。 创建列很简单,但我不知道如何在不知道需要多少循环的情况下填充它?
非常感谢任何建议。
干杯。
答案 0 :(得分:1)
我认为最好的方法是递归。我不知道BindingList的结构,我会写出最通用的我可以,为你调整正确的方法名称:
void visitNode(Node loc, int level)
{
//write here the code to save the node loc in the column = 'level'
foreach(Node n in Loc.children)
visitNode(n, level + 1);
}
其中Node是子类型,Loc.children是列表或子集合。
该递归将访问所有节点。
答案 1 :(得分:1)
如果您使用的是SQL Server 2008,则可以使用hierarchyid
您还可以查看SO上的以下文章
答案 2 :(得分:0)
我已经设法通过跟踪终端节点来排序这个问题,然后简单地逐个返回层次结构。 (因此,从技术上讲,进入行的最后一个单元格并向左返回。)