2017-12-27 873 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