复制数组元素

时间:2011-12-26 12:04:13

标签: .net wpf vb.net arrays

我有强类型,

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)

2 个答案:

答案 0 :(得分:1)

类型为RowData的集合中的项目是通过引用传递的,它们不是值类型。这就是为什么更改一个,将在项目添加的所有集合中进行更改,因为它是相同的对象。

如果您不想使用相同的引用,则需要创建新对象并将其添加到新集合中。一种很好的方法是在IClonable课程中实施RowData

Tradelines(1) = Tradelines(0).Clone()

答案 1 :(得分:0)

试试这个

Tradelines(0).ForEach(AddressOf Tradelines(1).Add)