树形结构
上面是要实现的具体树形结构:
我现在程序里面得到了一个List<TreeNode> allNodes 里面包含了所有的节点。
里面的节点的Name属性就是FB FBM FBW FBM1 FBM2 这些内容,
怎么写一段递归的函数把这5个节点弄成一棵树,用treeview显示出来啊???
以前我是这样实现的,记录各个节点的时候还要记录他的parentid ,后来看了一位高手的代码之后,发现:
人家使用有规律的编号来代替parentid的,比如说,上面的FBM1一看就知道是FBM的子节点,
一看就知道FBM和FBW是FB的子节点
我大概觉得他是取出所有的节点(allNodes)之后,用递归函数写出来的,到底这段代码要怎么写???
------解决方案--------------------
public void CreateTree(List<TreeNode> allNodes)
{
foreach (TreeNode nodeTmp in allNodes)
{
int count = nodeTmp.Name.Length;
while (count >= 1)
{
//父节点的名字
string parentName = nodeTmp.Name.Substring(0, count - 1);
//父节点的索引
int parentIndex = 0;
for (int i = 0; i < allNodes.Count; i++)
{
if (allNodes[i].Name == parentName)
{
parentIndex = i;
&nbs