日期:2014-05-16  浏览次数:21216 次

递归方法计算树节点级别
有一个树形菜单:
1 XX0
1.1 XX1
1.1.1 XX2
1.1.1.1 XX3
1.2 XX4
1.2.1 XX5
1.2.2 XX6
1.2.2.1 XX7
2 XX8
2.1 XX9
2.1.1 XX10
...

----------------------------------------------------------------

我写了一个递归的方法:

private void test(...){
    //查询数据
    for(查询出来的数据){
       test(...);
    }
}

我想要得到所有树节点是几级节点。
比如:1.1是2级节点    1.1.1是3级节点    1.1.1.1是4级节点
把级别都输出来。
------解决方案--------------------
设置一个全局变量,调用一次就加1
------解决方案--------------------
按你这么算,好像用字符串排一下序就有了

var items = new string[] { "1", "2.2.1.1", "1.1", "1.2", "1.1.1", "1.1.1.1", "2.1", "1.2.1", "1.2.2", "2.1.1" };
            Array.Sort(items);
            for (int i = 0; i < items.Length; i++)
            {
                Console.WriteLine("{0}:{1}", items[i], i);
            }
/*
1:0
1.1:1
1.1.1:2
1.1.1.1:3
1.2:4
1.2.1:5
1.2.2:6
2.1:7
2.1.1:8
2.2.1.1:9
*/

------解决方案--------------------
int a = 0;
private void test(...){ 
    //查询数据 
    for(查询出来的数据){ 
       a++;
       test(...); 
    } 
}

这样吧,刚才那样是多了一层的
------解决方案--------------------
看你上面写的是xx4,以为那个就是你要的呢
不知道你具体的级别是怎么划分的,判断有几个点?
------解决方案--------------------
"2.2.1.1".Split('.').Count();