PC Review
Forums
Newsgroups
Microsoft DotNet
Microsoft VB .NET
Copy List(Of type) to another List(Of type)
Forums
Newsgroups
Microsoft DotNet
Microsoft VB .NET
Copy List(Of type) to another List(Of type)
![]() |
Copy List(Of type) to another List(Of type) |
|
|
Thread Tools | Rate Thread |
|
|
#1 |
|
Guest
Posts: n/a
|
Hi,
Is it possible to copy the entire List(Of type) object to another List(Of type) object (they are both of the same type ofcourse) - without keeping the reference? There's the CopyTo method, but it only copies the data to a flat array. I Need this for Backup in my program, when i update the master list and want to rollback the entire list to the Pre-Update state... Right now i'm considering creating a specific function to loop on the entire list and copy field by field... Better suggestions will be much appreciated... |
|
|
|
#2 |
|
Guest
Posts: n/a
|
Muskito wrote: > Hi, > > Is it possible to copy the entire List(Of type) object to another > List(Of type) object > (they are both of the same type ofcourse) - without keeping the > reference? > > There's the CopyTo method, but it only copies the data to a flat array. One of the contructors for List(Of T) takes an IEnumerable(Of T) from which the new list is constructed. List(Of T) implements IEnumerable(Of T) so we can do: Dim listA, listB As List(Of Integer) listA = New List(Of Integer) listA.Add(1) listA.Add(2) listA.Add(5) listB = New List(Of Integer)(listA) This is just the same as the way all the old non-generic collections generally have a constructor that takes an IList or an ICollection to populate the new collection from. -- Larry Lard Replies to group please |
|
|
|
#3 |
|
Guest
Posts: n/a
|
Hi,
Thanks for the answer - but it doesn't work... It does keep the reference.. when i update something on the first list, it is also updated on the backup list... |
|
|
|
#4 |
|
Guest
Posts: n/a
|
Muskito wrote: > Hi, > > Thanks for the answer - but it doesn't work... > It does keep the reference.. when i update something on the first list, > it is also updated on the backup list... Yes, this is the default behvaiour of reference types. There is no general 'copy object' method, since 'copying' means a different thing to every classs. List(Of T) can't possibly know how to copy a T, so you're going to have to do it yourself. -- Larry Lard Replies to group please |
|
|
|
#5 |
|
Guest
Posts: n/a
|
Meanwhile on the other side of town...
![]() I Thought this would be the final answer.... so i already made my HomeMade copy function... Thanks! |
|
|
|
#6 |
|
Guest
Posts: n/a
|
Larry,
| This is just the same as the way all the old non-generic collections | generally have a constructor that takes an IList or an ICollection to | populate the new collection from. Be mindful: System.Collections.ObjectModel.Collection(Of T) & its derivatives, such as BindingList(Of T), wraps the IList(Of T) passed to the contractor, it does not copy the contents. Collection(Of T) wrapping the IList(Of T) is very useful in that it allows BindingList(Of T) to mediate the binding between one your collections & a Windows Form. It also allows Collection(Of T) to be based on other collection types, such as LinkedList(Of T) or an Array. NOTE: To use LinkedList(Of T) with Collection(Of T) you need a version of LinkedList(Of T) that implements IList(Of T)... -- Hope this helps Jay B. Harlow [MVP - Outlook] ..NET Application Architect, Enthusiast, & Evangelist T.S. Bradley - http://www.tsbradley.net "Larry Lard" <larrylard@hotmail.com> wrote in message news:1144142262.627507.190340@g10g2000cwb.googlegroups.com... | | Muskito wrote: | > Hi, | > | > Is it possible to copy the entire List(Of type) object to another | > List(Of type) object | > (they are both of the same type ofcourse) - without keeping the | > reference? | > | > There's the CopyTo method, but it only copies the data to a flat array. | | One of the contructors for List(Of T) takes an IEnumerable(Of T) from | which the new list is constructed. List(Of T) implements IEnumerable(Of | T) so we can do: | | | Dim listA, listB As List(Of Integer) | | listA = New List(Of Integer) | listA.Add(1) | listA.Add(2) | listA.Add(5) | | listB = New List(Of Integer)(listA) | | | This is just the same as the way all the old non-generic collections | generally have a constructor that takes an IList or an ICollection to | populate the new collection from. | | -- | Larry Lard | Replies to group please | |
|
![]() |
|
| Thread Tools | |
| Rate This Thread | |
|
|

Main Page 


