递归树节点字典

时间:2013-05-01 19:30:42

标签: vb.net recursion dictionary treeview

我通过AutoCAD文档的许多程序集进行批量打印。我有一个递归方法,遍历每个绘图,以验证它是否有任何子项,然后进入每个孩子,看看他们是否有任何孩子......等等(递归)。

我遇到了一张我已经打印过的图画,对于我来说,通过该图纸并再次打印所有的孩子是完全没用的。

所以...我想建立一个虚拟列表,如果你愿意的话,我想建立树视图中项目的精确副本。我会用它来验证我正在尝试打印的项目是否已存在于虚拟列表中,如果是这样的话...那么我只需在树中插入KeyValue,这样可以节省大量时间。

我认为我的字典宣言看起来像这样......

Dim dic_AllAssemblies As New Dictionary(Of String, TreeNodeCollection)

我截取了一个我的树视图的例子:

Recursive treeview

字典将包含主要顶部项目“ADF020-080A0”作为它的第一个键,并且在该键中将包含其所有子项的值...这甚至可能吗?它可能会下降6-7级甚至更多...字典或...列表可以处理吗?或者还有其他方法我还没知道吗?

 ADF020-080A0
     ADF020-081A0
         M17981
         M17981
     ADF000-092AS
         Etc...
             Etc...

1 个答案:

答案 0 :(得分:2)

我不知道任何不起作用的理由。使用词典,您可以.ContainsKey(string)检查重复的键名。如果找到密钥,请跳过它。