Cloner une Liste(De Classe)

J'ai fait un peu de lecture et cant semblent envelopper ma tête autour de ce que la meilleure approche serait de cloner une Liste(de classe) dans mon VB2010 projet. J'ai trois classes qui sont liées comme

Public Class City
    'here are many fields of type string and integer
    Public Roads As New List(Of Road)
End Class
Public Class Road
    'here are many fields of type string and integer
    Public Hazards As New List(Of Hazard)
End Class
Public Class Hazard
    Implements ICloneable

    'here are many fields of type string and integer and double
    Public Function Clone() As Object Implements System.ICloneable.Clone
        Return Me.MemberwiseClone
    End Function
End Class

Donc disons que j'ai une ville où je travaille, il y a des cas où j'ai envie de créer, en tant que base d'une route et de ses dangers, puis ajouter une autre route, mais à l'aide de l'état de la routes des dangers comme un point de départ, puis modifiez les champs.

Dim rd As New Road
'add road fields

dim hz1 as New Hazard
'add hazard fields
dim hz2 as New Hazard
'add hazard fields

'add the hazard objects to the road
rd.Hazards.Add(hz1)
rd.Hazards.Add(hz2)

'add the road to the city
myCity.Roads.Add(rd)


'here I want to start a new road based on the old road
Dim rdNew As New Road

'copy or clone the hazards from old road
rdNew.Hazards = rd.Hazards '<============

'over-write some of the hazard fields
rdNew.Hazards(0).Description = "temp"

Donc je sais que la copie d'une classe de copie du pointeur et non le contenu. J'ai utilisé l'interface ICloneable dans la classe de danger, mais ne peux pas dire que je suis à l'utiliser. Les Dangers de la variable est une liste de la classe de Danger. Comment pourrais-je aller sur le clonage de cette classe?

Avez-vous besoin de copier la liste, ou avez-vous besoin de copier tous les objets dans la liste?
Il semble que vous voulez un profondeur clone?
Je veux une copie de l'ensemble de la chose. En d'autres termes, tous les membres de Risques d'avoir copié sur la nouvelle route. Dangers contient des chaînes, des doubles, des entiers, et d'une énumération. Un clone, je pense, est ce que son nom, de sorte que je ne suis pas simplement en pointant à l'origine des dangers de la classe.

OriginalL'auteur sinDizzy | 2013-01-22