我对此问题有类似的要求: What is the most efficient/elegant way to parse a flat table into a tree?
在我的情况下,表可能包含数百万行,根节点结构的深度可能在5到6左右,但节点的宽度可能很大,
我正在使用实体框架C#,有没有一种快速有效的算法可以通过实体找出结构?
答案 0 :(得分:0)
如果您有DataTable,可以尝试这样的事情(递归函数):
private void FillTree(TreeNode pnode,DataTable data)
{
DataRow[] cnodes = data.Select("catparent=" + pnode.Tag.ToString());
foreach (DataRow crow in cnodes)
{
TreeNode ctn = new TreeNode(crow["catname"].ToString());
ctn.Name = "Cat" + crow["cat_id"].ToString();
ctn.Tag = crow["cat_id"].ToString();
pnode.Nodes.Add(ctn);
FillTree(ctn, data);
}
}
这是我的表结构: