У меня есть такая программа.
Module Module1
Public Class Mstr
Public Property Prop1 As String
Public Property Prop2 As String
Public Property Prop3 As String
Public Property Prop4 As String
Public Property lstDtlsA As List(Of DtlsA)
Public Property DtlsB As DtlsB
End Class
Public Class DtlsA
Public Property Prop1 As String
Public Property Prop2 As Integer
Public Property Prop3 As String
Public Property Prop4 As Integer
Public Property DtlsB As DtlsB
End Class
Public Class DtlsB
Public Property Prop1 As String
Public Property Prop2 As Integer
Public Property Prop3 As String
Public Property Prop4 As Integer
End Class
Private Sub Process(ByVal mstr As Mstr)
Dim lstTemp As New List(Of DtlsA)
For Each dtl In mstr.lstDtlsA
'Do some processing
PopulateDtlsBForDtlsA(mstr, dtl)
lstTemp.Add(dtl)
Next
'Finally set the modified dtls list to mstr
mstr.lstDtlsA = lstTemp
End Sub
Sub PopulateDtlsBForDtlsA(ByVal mstr As Mstr, ByVal dtl As DtlsA)
Dim dtlB As New DtlsB
dtlB = mstr.DtlsB
dtlB.Prop1 = mstr.Prop1
dtlB.Prop2 = dtl.Prop2
dtlB.Prop4 = dtl.Prop4
dtl.DtlsB = dtlB
End Sub
Sub Main()
Dim mstr As New Mstr
mstr.Prop1 = "Master Property 1"
mstr.Prop2 = "Master Property 2"
mstr.Prop3 = "Master Property 3"
mstr.Prop4 = "Master Property 4"
mstr.lstDtlsA = New List(Of DtlsA)
Dim dtlA As DtlsA
dtlA = New DtlsA
dtlA.Prop1 = "Detail A Property 11"
dtlA.Prop2 = 12
dtlA.Prop3 = "Detail A Property 13"
dtlA.Prop4 = 12
mstr.lstDtlsA.Add(dtlA)
dtlA = New DtlsA
dtlA.Prop1 = "Detail A Property 21"
dtlA.Prop2 = 22
dtlA.Prop3 = "Detail A Property 23"
dtlA.Prop4 = 24
mstr.lstDtlsA.Add(dtlA)
dtlA = New DtlsA
dtlA.Prop1 = "Detail A Property 31"
dtlA.Prop2 = 32
dtlA.Prop3 = "Detail A Property 33"
dtlA.Prop4 = 34
mstr.lstDtlsA.Add(dtlA)
Dim dtlB As New DtlsB
dtlB.Prop1 = "Detail B Property 1 set by master"
dtlB.Prop3 = "Detail B Property 3 set by master"
mstr.DtlsB = dtlB
Process(mstr)
End Sub
Конечный модуль
Но она не работает, как я ожидаю.Вы можете видеть это из 
Свойства DtlsB всех трех объектов DtlsA имеют значения из последней итерации.Пожалуйста, дайте мне знать, что я делаю не так, здесь также было бы полезно немного пояснить концепцию.Спасибо !!!