因为他们都是人,也许应该有一个
Person
班级。每个人都可以
Mother
A
Father
以及
Children
. 这样,您就可以创建多代的图表,以及各种各样的星座。
Public Class Person
Public Property Name As String
Public Property Mother As Person
Public Property Father As Person
Public Property Children As List(Of Person)
End Class
更新
这里有一个更完整(也有些修改)的例子,可能有助于揭示一些问题:
这个
人
等级,稍有变化(已更换
母亲
/
父亲
具有
Parent
制造了
儿童
属性'readonly_´)
Public Class Person
Public Property Name As String
Public Property Parent As Person
Private _children As New List(Of Person)
Public ReadOnly Property Children As List(Of Person)
Get
Return _children
End Get
End Property
End Class
以及创建
人
列出并设置LINQ查询的位置。
Module Program
Sub Main()
Dim persons As IEnumerable(Of Person) = GetPersonGraph()
Dim jonathansChildren As IEnumerable(Of Person)
jonathansChildren = persons.Where(Function(p) _
Not p.Parent Is Nothing _
AndAlso p.Parent.Name = "Jonathan Murphy")
For Each child As Person In jonathansChildren
Console.WriteLine(child)
Next
End Sub
Function GetPersonGraph() As IEnumerable(Of Person)
Dim result As New List(Of Person)
Dim parent As Person
Dim child As Person
parent = New Person()
parent.Name = "Jonathan Murphy"
result.Add(parent)
child = New Person()
child.Name = "Carl Murry"
child.Parent = parent
parent.Children.Add(child)
result.Add(child)
Return result
End Function
End Module