如何從列表中獲取作爲新副本/實例的項目,以便稍後使用和更改它,而不更改原始對象列表?從列表中獲取作爲新副本的項目(不作爲原始參考)
Public Class entry
Public val As String
' ... other fields ...
End Class
Dim MyList As New List(Of entry)
Dim newitem As New entry
newitem.val = "first"
MyList.Add(newitem)
現在,如果我嘗試從這個名單得到一個項目,將其更改爲別的東西,它改變在列表中的原始項目,以及(它被用作不是一個新實例的引用)。
Dim newitem2 As New entry
newitem2 = MyList.Item(0)
newitem2.val = "something else"
所以現在MyList.item(0).val
包含「別的東西」,但我只希望newitem2
包含給定域的新值,並從該列表中的對象保留其他值。
有沒有辦法做到這一點,而不是一個一個地重新分配所有的領域?
謝謝你的答案廣泛。很多有用的信息。現在我正在考慮使用'IClonable'這樣的東西,但是我也會讀'Struct'。 – 2015-04-02 07:54:09