走路文件夹树,自下而上

时间:2010-08-04 23:07:48

标签: c# .net recursion directory binary-tree

我正在寻找快速有效地使用C#/ .NET 3.5 自下而上浏览文件夹的想法

例如:

-0
--1
--- 12个
--2
--- 21个
--- 22个
--- 23个

先行走:12,21,22,23 那么:1,2

由于

2 个答案:

答案 0 :(得分:2)

以常规方式遍历树,并将包含每个节点和节点级别的对象添加到IEnumerable

public class DirectoryNode
{
    public DirectoryInfo Dir { get; set; }
    public int Level { get; set; }
}

public IEnumerable<DirectoryNode> myNodes;

然后,要获取列表,只需使用IEnumerable linq扩展方法调用生成的OrderByDescending,如下所示:

var result = myNodes.OrderByDescending(node => node.Level);

答案 1 :(得分:0)

您需要每个节点的深度,并且需要在开始遍历树之前找到所有节点的最大深度。因此,您需要遍历前序,顺序或后序遍历中的所有节点,找到它们的深度,然后以相反的深度顺序遍历整个树。