2016-08-03 37 views
0

我是VB.Net的新手,我陷入了一個問題。我有一棵多樹。根有許多孩子,甚至這些孩子也有許多其他孩子。我想用遞歸遍歷多樹。我無法在網上找到很多信息。有人能幫我嗎?謝謝!如何遍歷vb.net中的多樹

下面是我想達到的目標:

我的目標,我需要通過REST派:

Imports Microsoft.VisualBasic 

<DataContract> 
Public Class DropdownObj 

    <DataMember(Name:="name")> 
    Private dropdownData As String 
    Public Property name() As String 
     Get 
      Return dropdownData 
     End Get 
     Set(ByVal value As String) 
      dropdownData = value 
     End Set 
    End Property 

    <DataMember(Name:="id")> 
    Private _id As Integer 
    Public Property id() As Integer 
     Get 
      Return _id 
     End Get 
     Set(ByVal value As Integer) 
      _id = value 
     End Set 
    End Property 

End Class 

實際REST:

tmpGroups = SMS_Logic.Group.LoadGroupsForCombo(_currentUser.dsDir().Group, _currentUser.dsDir().Group_Group, _currentUser.dsDir().Location) 

    Dim x As Integer 
    x = tmpGroups.Count() 
    Dim temp As New List(Of DropdownObj) 
    For objCount As Integer = 0 To tmpGroups.Count - 1 
     Dim xobj As New DropdownObj 
     xobj.name = tmpGroups(objCount).Description 
     xobj.id = tmpGroups(objCount).GroupID 
     temp.Add(xobj) 
     Console.WriteLine(tmpGroups(0).Description) 
    Next 
    Return temp 
End Function 

所以tmpGroups擁有所有的根,然後分支出chil德倫。我只需要一些值,顯然我需要遍歷才能獲得這些值。獲取這些值後,我需要將它們作爲REST服務發送到前端。目前,在上面的代碼中,當我只使用一個循環時,我只能得到所有的根。但它的一個樹結構,我需要遍歷所有這些,並相應地將值添加到新的樹或我可以傳遞給我的前端的東西。

+0

請告訴我們你已經做了什麼來嘗試解決問題。 – DVK

+0

我已經添加了一些我想要實現的代碼片段。 – Unbreakable

回答

2

你應該自己做一些事情,但是無論如何它都是。 我這樣說是因爲每當我學習一種新語言時,遞歸可能是我嘗試實現的第一件事情,當我完成它時它是令人興奮和鼓舞的。

Private Shared Sub HandleNode(ByVal node As Object) 
    'Do the work on the node before child-nodes. 

    For Each child As Object In node.Children 
     HandleNode(child) 
    Next 

    'Do the work on the node after child-nodes. 
End Sub 

如果您在孩子之前或之後在當前節點上工作,這可能很重要。要記住的事情。

+0

我已經添加了我的代碼段。你能看一下嗎,非常感謝! – Unbreakable

+0

它也會迭代多個樹?我的意思是如果一個根有許多孩子。甚至這些孩子也有很多孩子。請指導。 – Unbreakable

+0

@ Unbreakable:會的。 RoyalPotato提供的方法遍歷當前node_中的每個子節點,然後再對每個children_調用該方法。所以每個孩子和孩子都會這樣做,直到沒有更多的孩子。 –