假设我有一个WinForms Treeview,如下所示:
我想创建一个类似以下函数的功能:
换言之,始终从给定节点尽可能深入,并返回子级 - 即使它们分散在不同的父级之间(如
我已创建一个函数来告诉我节点向下走了多少个层次,如下所示:
我希望你能翻译这个意思 - 谢谢!
Parent1
Child1
Sub-Child1
DeepestNode1
DeepestNode2
DeepestNode3
Sub-Child2
DeepestNode4
DeepestNode5
DeepestNode6
Child2
Sub-Child3
Sub-Child4
Sub-Child5
Sub-Child6
Child3
(no children)
我想创建一个类似以下函数的功能:
Function GetDeepestChildren(MyNode as Treenode) as List(Of Treenode)
在这里,如果结果看起来像:
GetDeepestChildren(Parent1) = {DeepestNode1, DeepestNode2, DeepestNode3, DeepestNode4, DeepestNode5, DeepestNode6}
GetDeepestChildren(Sub-Child1) = {DeepestNode1, DeepestNode2, DeepestNode3}
GetDeepestChildren(Child2) = {Sub-Child3, Sub-Child4, Sub-Child5, Sub-Child6}
GetDeepestChildren(Child3) = Empty list
换言之,始终从给定节点尽可能深入,并返回子级 - 即使它们分散在不同的父级之间(如
Parent1
中的情况)。我已创建一个函数来告诉我节点向下走了多少个层次,如下所示:
Public Function GetDeepestChildNodeLevel(ByVal ParentNode As TreeNode) As Integer
Dim subLevel = ParentNode.Nodes.Cast(Of TreeNode).Select(Function(subNode) GetDeepestChildNodeLevel(subNode))
Return If(subLevel.Count = 0, 0, subLevel.Max() + 1)
End Function
所以我知道从哪个层级获取孩子,我需要的是一个能够做到这一点的函数 - 大致上是这样的:
Function GetDeepestChildren(MyNode as Treenode) as List(Of Treenode)
Return All child nodes where level = GetDeepestChildNodeLevel(MyNode)
End function
我希望你能翻译这个意思 - 谢谢!