我在尋找通過使用C#/文件夾自下而上走路快而有效的方法思路NET 3.5步行文件夾樹,自下而上
例如:
-0
--1
--- 12
--2
--- 21
--- 22
--- 23
第一步行雖然:12,21,22,23 然後:1,2
由於
我在尋找通過使用C#/文件夾自下而上走路快而有效的方法思路NET 3.5步行文件夾樹,自下而上
例如:
-0
--1
--- 12
--2
--- 21
--- 22
--- 23
第一步行雖然:12,21,22,23 然後:1,2
由於
遍歷樹通常的方式,並添加含有各節點與所述節點的方式的水平的物體IEnumerable
。
public class DirectoryNode
{
public DirectoryInfo Dir { get; set; }
public int Level { get; set; }
}
public IEnumerable<DirectoryNode> myNodes;
然後,讓你的列表,只需打電話給你造成IEnumerable
與OrderByDescending
LINQ擴展方法,像這樣:
var result = myNodes.OrderByDescending(node => node.Level);
我明白你的意思了,謝謝:) – 2010-08-05 00:20:44
你需要在每個節點的深度,你需要找到最大在開始遍歷樹之前所有節點的深度。所以你需要遍歷所有節點的前序,中序或後序遍歷,找到它們的深度,然後以相反的深度順序遍歷整個樹。
你會在樹的根部結束。你只是想走特定的分支? – 2010-08-04 23:09:09
走遍所有分支,順序不重要,只要他們在同一個「級別」 – 2010-08-04 23:10:51
然後我會建議以通常的方式從根目錄走樹,並且只保留你想要的節點。如果你只想要一個特定級別的節點,你可以跟蹤你的計數器級別,並拋出你不需要的所有節點。 – 2010-08-04 23:12:00