我想将一个List(Of Object)的内容复制到另一个List并修改单个值。有没有办法删除引用?
在代码示例中,我得到了输出&test; test2 test2'当我期待' test1 test2'。
Module Module1
Sub Main()
Dim ListOfSample As New List(Of sample)
Dim var1 As New sample
var1.Name = "test"
ListOfSample.Add(var1)
ListOfSample.Add(var1)
Dim NewListOfSample As New List(Of sample)
NewListOfSample.AddRange(ListOfSample)
NewListOfSample(1).Name = "test2"
Console.Write(NewListOfSample(0).Name & " " & NewListOfSample(1).Name)
End Sub
End Module
Public Class sample
Public Name As String
End Class
答案 0 :(得分:0)
在<ion-item class="item-accordion"
ng-repeat="title in groupR.titles"
ng-repeat = "url in groupR.urls"
ng-show="isGroupShown(groupR)"
ui-sref="menu.{{url}}"
menu-close="">
{{title}}
</ion-item>
行中,您要添加对新列表的引用。因此,无论您在新列表中更改了什么,都会更新原始列表中的引用(它们都指向相同的对象)。您需要将新的Sample实例添加到第二个列表中,以使其包含独立项。
答案 1 :(得分:0)
由于您的列表是对象列表,因此当您执行添加范围时,您不会添加&#34;副本&#34;而是将指针(引用)添加到原始列表中的相同对象
您需要克隆第一个列表中的所有对象,然后将这些克隆添加到第二个列表中。在克隆方面,.NET有几种不同的方法。这是一篇关于获取对象的深层副本的帖子,这些文章可以很好地解释您的选项:Deep Copy of an Object
您可以在&#34;示例&#34;上创建克隆方法。 object返回一个新初始化的自身副本,或者你可以使用我链接到的帖子中提到的一些序列化方法。