我知道BV.net一個維數組一樣創建:
Dim Parents As New Dictionary(Of Integer, String) From {
{100, "Parent1"},
{200, "Parent2"},
{300, "Parent3"}
}
這是一本字典 - 獨特的鍵或值的映射 - 而不是一個一維數組。如果你只是想遍歷它(特別是如果你想在爲了做到這一點),元組(Tuple(Of Integer, String)
)或KeyValuePair
s的名單可能是比較合適的:
Dim parents As New List(Of Tuple(Of Integer, String)) From {
Tuple.Create(100, "Parent1"),
Tuple.Create(200, "Parent2"),
Tuple.Create(300, "Parent3")
}
您可以擴展成三項元組給他們每個孩子:
Dim parents As New List(Of Tuple(Of Integer, String, List(Of Tuple(Integer, String))) From {
Tuple.Create(100, "Parent1", New List(Of Tuple(Integer, String)) From { Tuple.Create(101, "Child1"), Tuple.Create(102, "Child2") }),
Tuple.Create(200, "Parent2", New List(Of Tuple(Integer, String)) From { Tuple.Create(201, "Child1") }),
…
}
並對其進行迭代,
For Each parent In parents
Console.WriteLine("[{0}] {1}", parent.Item1, parent.Item2)
For Each child In parent.Item3
Console.WriteLine(" [{0}] {1}", child.Item1, child.Item2)
Next
Next
這些都不是很描述性的名字,不過,你可以隨時菊st做你自己的課程。
Class Parent
Public Property Number As Integer
Public Property Name As String
Public Property Children As New List(Of Child)()
Public Sub New(number As String, name As String)
Me.Number = number
Me.Name = name
End Sub
End Class
Class Child
Public Property Number As Integer
Public Property Name As String
Public Sub New(number As String, name As String)
Me.Number = number
Me.Name = name
End Sub
End Class
根據這些如何相關,它可能是適當的從一個人繼承。然後,爲了方便起見,您可以使父項可枚舉;爲更方便,你可以給它一個Add
方法,這將使From
語法被用作得好:
Class Parent
Implements IEnumerable(Of Child)
Public Property Number As Integer
Public Property Name As String
Public Property Children As New List(Of Child)()
Public Sub New(number As String, name As String)
Me.Number = number
Me.Name = name
End Sub
Public Sub Add(child As Child)
Me.Children.Add(child)
End Sub
Public Function GetEnumerator() As IEnumerator(Of Child) Implements IEnumerable(Of Child).GetEnumerator
Return Me.Children.GetEnumerator()
End Function
Private Function GetEnumerator_() As IEnumerator Implements IEnumerable.GetEnumerator
Return Me.GetEnumerator()
End Function
End Class
和:
Dim parents As New List(Of Parent) From {
New Parent(100, "Parent1") From {
New Child(101, "Child1"),
New Child(102, "Child2")
},
…
}
我的語法可能不完全正確的,這些,但你明白了。
你的循環是如何使你失敗的?結果是什麼?是父母和孩子班?代碼在哪裏? – Plutonix 2014-10-02 23:32:15