Comment copier en profondeur une hashtable dans une nouvelle hashtable?hashtable de copie en profondeur
Répondre
Vous pouvez créer un nouveau avec l'ancien comme paramètre:
Dictionary<a,b> dic=new Dictionary<a,b>(oldDict)
et même pour HashSet<T>
. Cela construit une nouvelle hashtable à partir du contenu de l'ancien.
Remarque: Si vous n'utilisez pas le comparateur par défaut, vous devez le spécifier à nouveau dans le constructeur.
Dictionary<TKey, TValue>(IDictionary<TKey, TValue>)
Initialise une nouvelle instance de la classe Dictionary qui contient des éléments copiés à partir IDictionary et utilise précisé le comparateur d'égalité par défaut pour le type de clé.
Il ne copie pas en profondeur, les clés/valeurs qui sont stockées dans ce nouveau dictionnaire sont toujours les mêmes objets que ceux de votre ancien dictionnaire. – nos
@nos, pas si ce sont des types de valeur. –
J'ai les deux types de valeur et de référence dans la collection, donc http://stackoverflow.com/questions/129389/how-do-you-do-a-deep-copy-an-object-in-net-c-specifically fonctionne le mieux .. – Allen
Que diriez-vous ceci:
public void CloneDict(Dictionary<K,V> dictionary) where V:IClonable
{
Dictionary<K,V> clonedOne = new Dictionary<K,V>();
foreach(KeyValuePair<K,V> pair in dictoinary) {
clonedOne(pair.Key, (V) pair.Value.Clone()
}
}
mettre en œuvre ensuite le IClonable pour tout ce que vous les objets sont à stocker dans le dictionnaire. La même approche peut être appliquée à Hashtable mais seulement comme non générique.
- 1. Copie en profondeur duplicate() de ByteBuffer Java
- 2. Copie en profondeur des entités JPA
- 3. Clone (copie en profondeur) Entité LINQ
- 4. constructeur Copie: copie en profondeur une classe abstraite
- 5. copie n paires k/v de Hashtable
- 6. Copie en profondeur des noeuds de la vue arborescente
- 7. Comment faire une copie en profondeur des objets NHibernate?
- 8. Copie en profondeur des beans EJB Entity avec les relations
- 9. Est-ce que Enumerable.Repeat() fait une copie en profondeur?
- 10. Une opération de copie en profondeur copie-t-elle de manière récursive des sous-variables qu'elle ne possède pas?
- 11. Hashtable. Nom de l'histoire. Pourquoi pas HashTable?
- 12. En Perl, comment puis-je faire une copie en profondeur d'un tableau?
- 13. Problème lors de la copie en profondeur d'une 'Liste <T>' C#
- 14. C++: Mise à jour des pointeurs de copie en profondeur (efficacement)
- 15. Copie en profondeur de std :: stack <boost> shared_ptr <T>>
- 16. profondeur de rendu en HLSL
- 17. Profondeur de suivi en récursivité
- 18. Clonage en profondeur dans Compact Framework
- 19. Comment faire une copie en profondeur d'un élément dans LINQ to XML?
- 20. Comment faites-vous une copie en profondeur d'un objet dans Java?
- 21. Problème de hashtable Powershell
- 22. hashtable Synchronisation
- 23. Ecriture en tampon de profondeur sans test de profondeur en OpenGL (non shader)
- 24. C# en profondeur: Problème réglé?
- 25. Différences entre .NET Hashtable, Java Hashtable et HashMap
- 26. de Hashtable et la carte
- 27. Comment garder l'ordre des éléments en hashtable
- 28. Empêcher double Entrée en Hashtable C++
- 29. Contenu du fichier en entrée de hashtable en Objective-C
- 30. Convertir une mappe F # en Hashtable
http://stackoverflow.com/questions/129389/how-do-you-do-a-deep-copy-an-object-in-net-c-specifically – user281693
Est-ce une question de devoirs? –