.net 复制数组元素
我上过强类型的课.net 复制数组元素,.net,wpf,vb.net,arrays,.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 snEqu
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))
贸易线(0)已填充,没有问题,但当我使用以下代码将元素-0复制到元素-1时,它们似乎已绑定,因此如果我更改任一元素中的任何值,另一个元素将自动更新。我不想那样,有什么线索吗
Tradelines(1) = Tradelines(0)
类型为
RowData
的集合中的项是通过引用传递的,它们不是值类型。这就是为什么更改一个将在添加项的所有集合中进行更改,因为它是同一个对象
如果不需要相同的引用,则需要创建新对象并将其添加到新集合中。一种很好的方法是在RowData
类中实现IClonable
Tradelines(1) = Tradelines(0).Clone()
类型为
RowData
的集合中的项是通过引用传递的,它们不是值类型。这就是为什么更改一个将在添加项的所有集合中进行更改,因为它是同一个对象
如果不需要相同的引用,则需要创建新对象并将其添加到新集合中。一种很好的方法是在RowData
类中实现IClonable
Tradelines(1) = Tradelines(0).Clone()
试试这个
Tradelines(0).ForEach(AddressOf Tradelines(1).Add)
试试这个
Tradelines(0).ForEach(AddressOf Tradelines(1).Add)
它们没有边界。它们是相同的元素,所以这篇文章也谈到了这一点:它们没有边界。它们是相同的元素。这篇文章也介绍了这一点:
Clone()
函数只适用于子项,这意味着我可以做,Tradelines(1)(0)=Tradelines(0)(0)。Clone
只复制element-0中的第一个子项,但我做了一些递归操作,现在一切都很好,谢谢!然后,Clone()
函数仅可用于子项,这意味着我可以执行,Tradelines(1)(0)=Tradelines(0)(0)。Clone
仅复制元素-0中的第一个子项,但我做了一些递归操作,现在一切都很好,谢谢!