我有强类型,
Public Class RowData
Sub New(ByVal rRecord As String, ByVal rAccount As String, _
ByVal soExperian As Boolean, ByVal soEquifax As Boolean, ByVal soTransunion As Boolean, _
ByVal snExperian As Boolean, ByVal snEquifax As Boolean, ByVal snTransunion As Boolean)
Me.Record = rRecord
Me.Account = rAccount
Me.oExperian = soExperian
Me.oEquifax = soEquifax
Me.oTransunion = soTransunion
Me.nExperian = snExperian
Me.nEquifax = snEquifax
Me.nTransunion = snTransunion
End Sub
.........
End Class
然后我使用以下代码声明2个元素数组。
Dim Tradelines(1) As List(Of RowData)
Tradelines(0) = New List (Of RowData)
Tradelines(0).Add(New RowData("222", "222", False, False, False, False, False, False))
Tradelines(0)已填充,没有问题,但是当我使用以下代码将Element-0复制到Element-1时,它们似乎被绑定,这样如果我更改任一元素中的任何值,则另一个元素会自动更新。我不想要那个,任何线索?
Tradelines(1) = Tradelines(0)
答案 0 :(得分:1)
类型为RowData
的集合中的项目是通过引用传递的,它们不是值类型。这就是为什么更改一个,将在项目添加的所有集合中进行更改,因为它是相同的对象。
如果您不想使用相同的引用,则需要创建新对象并将其添加到新集合中。一种很好的方法是在IClonable
课程中实施RowData
。
Tradelines(1) = Tradelines(0).Clone()
答案 1 :(得分:0)
试试这个
Tradelines(0).ForEach(AddressOf Tradelines(1).Add)