b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

c#递归算法 C#递归实现无限级分类树

电脑杂谈  发布时间:2017-01-19 11:11:45  来源:网络整理
c#递归算法c#递归算法

网上的无限级分类树已经被实现无数遍了,但是大部分都不是很爽,而且php的居多,实际情况需要,还是自己写一个比较好,算法弱啊,得好好练练基础算法了。

C#递归实现无限级分类代码如下:

/// <summary>
        /// 获取分类树
        /// </summary>
        /// <param name="catelisttree">生成后的树</param>
        /// <param name="parentid">父类id</param>
        /// <param name="depth">递归深度</param>
        /// <returns></returns>
        public static List<InfoCate> GetCateListTree(List<InfoCate> catelisttree, int parentid = 0, int depth = 0)
        {
           //获取所有分类,此处由于递归会调用好几次,在实际使用中用单例去实现,放内存里去。
            var catelist = DatabaseProvider.InstancePost.GetCateList().FindAll(c => c.ParentId == parentid);
            
            //显示树的层次标识符
            var treechar = " └ ";

            //循环读取取出的所有分类
            foreach (var infoCate in catelist)
            {
                //定义一个树枝
                var branch = string.Empty;
                //第一次递归不处理,以后逐层的增加树枝
                if (depth > 0)
                {
                    //通过padleft实现根据深度来自增树枝
                    branch = (treechar).PadLeft(depth, ' ');
                }
                //重新赋值增加树枝后的新的分类名称
                infoCate.CateName = branch + infoCate.CateName;

                //把遍历后的分类添加到目标树中
                catelisttree.Add(infoCate);

                //递归操作
                GetCateListTree(catelisttree,infoCate.CateId, depth + 1);
            }

            //返回树供下一次递归使用
            return catelisttree;
        }

调用代码如下:

[TestMethod]
        public void TestCategoryTree()
        {
            var catelisttree=new List<InfoCate>();
            var catelist = GetCateListTree(catelisttree);
            foreach (var infoCate in catelist)
            {
                Console.WriteLine(infoCate.CateName);
            }
        }

递归算法(1286)

lucene.net已经从孵化器毕业(1611)

调试WebService时,显示:无法自动进入并单步执行服务器(5425)

webservice上传图片的问题(2379)

mvc3 CheckBoxList扩展(4255)


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27341-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 尹鸣
        尹鸣

        提前祝小爷吴亦凡生日快乐哟

      热点图片
      拼命载入中...