2017-12-27 385 views
-1

我有类似的要求如在这样的问题: What is the most efficient/elegant way to parse a flat table into a tree?从表构建树结构?

在我的情况,该表可以潜在地包含数百万行的,该节点结构为根的深度可以是约5至6,但广度的节点可能是巨大的,我有使用实体框架C#,有没有一种快速和高效的算法,我们可以通过它来找出结构通过实体?

+0

我不知道你的问题包含足够信息形成一个答案,如果它确实,我不知道它将在主题/范围内stackoverflow –

回答

0

如果你有数据表,你可以尝试这样的事情(递归函数):

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); 
     } 
    } 

这是我的表结构:

This is my table structure:

+0

在我的情况下,我传递的标记= 0的RootTreeNode,所以在第一次执行它会得到所有的父节点或主类别并将它们添加到unde r根节点。 – maddy23285