计算目录树的深度-基于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

posted @ 2014-10-11 00:52  代码士多  阅读(175)  评论(0编辑  收藏  举报