Re: arraylist copy



What does "shallow" and "deep" copy mean?

TIA,
John

On Fri, 8 Apr 2005 19:50:50 +0200, "Herfried K. Wagner [MVP]"
<hirf-spam-me-here@xxxxxx> wrote:

>"Sam" <samuel.berthelot@xxxxxxxx> schrieb:
>> Dim rNodeList As New ArrayList
>> Dim rNodeListNew As New ArrayList
>>
>> For iCntr As Integer = 0 To tvRelations.Nodes.Count - 1
>> rNodeList.Add(tvRelations.Nodes(iCntr).Text)
>> Next
>>
>> rNodeListNew = rNodeList
>> rNodeList.RemoveAt(2)
>>
>> after I've filled rNodeList, it contains 8 elements.
>> So does rNodeListNew
>>
>> But when I remove the element 2 of rNodeList, it is also removed in
>> rNodeListNew. Why ? Do they both point to the same memory location ?
>> How can I prevent that in vb ?
>
>Both variables point to the same instance of 'ArrayList'. You can use the
>arraylist's 'Clone' method to create a shallow copy of the arraylist:
>
>\\\
>Dim al1 As New ArrayList
>al1.Add("Bla")
>al1.Add("Goo")
>Dim al2 As ArrayList = al1.Clone()
>al1.Clear()
>MsgBox(CStr(al2.Count))
>///

.



Relevant Pages

  • Re: arraylist copy
    ... Do I have the functions of the Clone and CopyTo ... >>Dim rNodeListNew As New ArrayList ...
    (microsoft.public.dotnet.languages.vb)
  • Re: arraylist copy
    ... Try the .Clone() method of the ArrayList. ... Marcie ... >Dim rNodeListNew As New ArrayList ...
    (microsoft.public.dotnet.languages.vb)
  • Re: arraylist copy
    ... Switch the line rNodeListNew = rNodeList to: ... then both arraylists will still point to the same objects. ... > Dim rNodeListNew As New ArrayList ...
    (microsoft.public.dotnet.languages.vb)
  • arraylist copy
    ... Dim rNodeListNew As New ArrayList ... Thx ... Prev by Date: ...
    (microsoft.public.dotnet.languages.vb)

Loading