|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Copy List(Of type) to another List(Of type)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... Muskito wrote:
> Hi, One of the contructors for List(Of T) takes an IEnumerable(Of T) from> > 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. 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 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... Muskito wrote:
> Hi, Yes, this is the default behvaiour of reference types. There is no> > 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... 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 Meanwhile on the other side of town... :)
I Thought this would be the final answer.... so i already made my HomeMade copy function... Thanks! Larry,
| This is just the same as the way all the old non-generic collections Be mindful: System.Collections.ObjectModel.Collection(Of T) & its | generally have a constructor that takes an IList or an ICollection to | populate the new collection from. 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)... -- Show quoteHide quoteHope this helps Jay B. Harlow [MVP - Outlook] ..NET Application Architect, Enthusiast, & Evangelist T.S. Bradley - http://www.tsbradley.net "Larry Lard" <larryl***@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 |
How to retrive Outlook 2003 style gradient color schemes?
Dynamic DataGridView missing horizontal scrollbar Suggestions to reduce memory use when splitting a string Accessing Properties within a Panel Inheritance Reading a Webpage Source with Cyrillic Characters Form Focus get selected node from mouse right click Serialization of Object Graph (Inheriting ArrayList) Removing a file with VB.NET Program |
|||||||||||||||||||||||