计算目录树的深度-基于linq

生成word时,有时用户要求要生成所有级别的目录。

这个时候就需要计算目录树的深度。关于求树的深度,已有很多现成的算法。本文主要介绍一种linq的写法。代码看起来挺简洁的。

public static int MenuDepth(List<Menu> menuList, int parentId)
{
    var children = menuList.Where(p => p.parentId == parentId);
    if (children.Count() == 0)
        return 1;
    return 1 + children.Select(p => MenuDepth(menuList, p.id)).Max();
}

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

DavidCai 2014-10-11 于家中

欢迎加我qq讨论任何关于导出word的问题:371323761

时间: 2024-10-29 04:27:52

计算目录树的深度-基于linq的相关文章

显示目录树命令tree

-a:显示所有文件,包括隐藏文件 -d:只显示目录 -f:显示完整的文件名,包含路径 -L:显示目录树的深度 [[email protected] /]# tree -L 2 -a -f /home /home |-- /home/99user.ldif |-- /home/Legal | |-- /home/Legal/COPYRIGHT.txt | |-- /home/Legal/Entitlement_de.txt | |-- /home/Legal/Entitlement_es.txt

基于AD的用户组织目录树选择工具的解决方案

基于AD的用户组织目录树选择工具的解决方案 2009-03-06 11:00 by Virus-BeautyCode, 1675 阅读, 5 评论, 收藏, 编辑 本文的需求来自进来SharePoint开发中的人员选择,基础中国的用户更加喜欢通过组织结构来选择人员,这样可以清晰的知道选择人员的部门,通过组织结构选择人员是本文的讨论点. 我也是集合了前人的思路,进行了整合,参考了下面的博客 基于AD的用户组织目录树选择工具的解决方案http://blog.lickies.cn/Lists/Post

svn稀疏目录--通过设置工作目录的深度(depth)实现目录树的部分签出

对于一个大的版本库来说,本地工作目录签出整个目录树是即费时又占地儿的.虽然可以只签出某个子目录树,但有时候还是需要从根目录签出.那么,怎么才能只把自己感兴趣的子目录签出来呢? 从svn1.5版开始,提供了稀疏目录(Sparse Directories)功能,允许对目录设置深度(depth),这个设置可以保存在工作目录上,以后svn update等命令都在这个设置下工作. 有以下几种depth可以选择: --depth empty:只包含目录自身,不包含目录下的任何文件和子目录.--depth f

Linux磁盘分区,目录树,文件系统的关系(转)

研究了很久,自始至终不能够从三者的区别和联系中找到一个大脑与这些概念之间合适的相处方式.对于基本概念和理论理解不到位,在工作之中会走很多弯路和犯很多错误.今天花一天的时间,终于对三者的区别和联系有了更进一步的理解,特此记录并分享之,供大家探讨交流. (一)磁盘分区 首先要明白的是磁盘为什么要分区. 一是从数据安全方面考虑,二是从系统访问磁盘的性能考虑.一个磁盘的某个分区损坏,不在该分区的数据将不会受到影响,这样就能够有效地保护不同业务的数据.过大的磁盘分区在系统进行读写的时候,会降低系统的读写性

利用jQuery无插件创建可扩展目录树

这是一个简单.轻量级的,基于jQuery的目录树.纯html代码. <html> <head> </head> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>   <script> $( document ).ready( function( ) {     $( '.t

xgboost/gbdt在调参时为什么树的深度很少就能达到很高的精度?

问题: 用xgboost/gbdt在在调参的时候把树的最大深度调成6就有很高的精度了.但是用DecisionTree/RandomForest的时候需要把树的深度调到15或更高.用RandomForest所需要的树的深度和DecisionTree一样我能理解,因为它是用bagging的方法把DecisionTree组合在一起,相当于做了多次DecisionTree一样.但是xgboost/gbdt仅仅用梯度上升法就能用6个节点的深度达到很高的预测精度,使我惊讶到怀疑它是黑科技了.请问下xgboo

js实现目录树

第一步:HTML结构 1 <div class="folderDiv"> 2 <p>目录</p> 3 <ul class="folder"></ul> 4 </div> 第二步:CSS样式 1 /*目录树*/ 2 .folderDiv {width: 14%;float: left;height: auto;overflow: auto;border:1px solid #ccc;border-

dnspy的详细配置,dnspy如何过滤反编译之后的乱码,dnspy如何反编译表达式目录树

dnSpy应该是目前使用最多的.net反编译工具.很多情况下反编译C#代码非常方便,特别是查找基类,子类.搜索一些class,方法.接口,非常方便.比ILspy好很多.而且dnspy是可以配置的. 如果要dnSpy非常干净地显示反编译之后的代码,可以看我具体的配置: 第一张是效果图,过滤一个具体的关键词筛选的时候可以使用[全词匹配],可以在所有的.net framework中查找你需要寻找的那个关键字,不区分大小写. 右侧底部的这个搜索框是可以配置的,而且有时候很容易被隐藏掉,需要"上拉&quo

jdk 1.7系列(三)处理目录和目录树

DirectoryStream<T> 接口 java.nio.file.DirectoryStream<T>接口和它的实现类提供的功能: 循环遍历目录中的子项,比如查找目录中的文件 用glob表达式(比如*Footbar*)进行目录子项匹配和基于MIME的内容检测(比如text/xml文件) 用walkFileTree方法实现递归移动.复制和删除操作 一.在目录中查找文件,列出目录下的xml文件 以此项目为示例: package com.gudongcheng.jdk7.nio;