假如节点为以下几组
a,b,c,
a,d
a,e ,f
a,b,g,生成:
   a 
 / \ \
 b d  e
/ \     \
c  g     f最后用C#代码,效率越高越好

解决方案 »

  1.   


        public void GetNode(TreeView MyTreeView, IList<string> PathList, char SplitChar)
            {
                for (int i = 0; i != PathList.Count; i++)   
                {
                    int Index = 1;
                    IList<string> _TempNode = PathList[i].Split(SplitChar);
                    if (_TempNode[0].Trim().Length != 0)
                    {                    string NodeID = _TempNode[0];                    if (treeView1.Nodes[NodeID] == null)
                        {
                            MyTreeView.Nodes.Add(NodeID, _TempNode[0]);
                            AddNode(MyTreeView.Nodes[NodeID], _TempNode, ref Index);
                        }
                        else
                        {                        AddNode(MyTreeView.Nodes[NodeID], _TempNode, ref Index);
                        }
                    }            }        }
            
            private void AddNode(TreeNode Tn, IList<string> _TempNode,ref int Index)
            {
                if (Index > _TempNode.Count - 1) return;            if (_TempNode[Index].Trim().Length == 0)
                {
                    Index++;
                    if (Index > _TempNode.Count - 1) return;
                    
                }
                string NodeID = _TempNode[Index];            if (Tn.Nodes[NodeID] == null)
                {
                    Tn.Nodes.Add(NodeID, _TempNode[Index]);
                    Index++;
                    AddNode(Tn.Nodes[NodeID], _TempNode, ref Index);
                }
                else
                {
                    Index++;
                    AddNode(Tn.Nodes[NodeID], _TempNode, ref Index);
                }
            }
         
     IList<string> Temp = new List<string>();            Temp.Add("a,b,c,");
                Temp.Add("a,d");
                Temp.Add("a,e ,f ");
                Temp.Add("a,b,g,");
                            GetNode(treeView1, Temp, ',');
      

  2.   

    if (treeView1.Nodes[NodeID] == null)改成 if (MyTreeView.Nodes[NodeID] == null)