Comment cloner un dictionnaire .NET?
Je sais que nous devrions plutôt être à l'aide de dictionnaires, par opposition à des tables de hachage. Je ne peux pas trouver un moyen de cloner le dictionnaire si. Même si un moulage ICollection qui-je faire pour obtenir le SyncRoot, qui je sais, c'est aussi mal vu.
Je suis occupé à en changer maintenant. Je suis sous la bonne hypothèse qu'il n'existe aucun moyen pour mettre en place toute sorte de clonage, de façon générale, c'est pourquoi clone n'est pas pris en charge pour le dictionnaire?
- Regardez stackoverflow.com/questions/139592/...
- J'ai vu ça, mais je ne se soucient pas de la copie en profondeur. Un clone copie ne pourra le faire. Il y a également une deuxième partie de ma question qui est: Est la raison pour laquelle il n'y a pas de clone en raison de la difficulté que les génériques introduit?
Vous devez vous connecter pour publier un commentaire.
Utiliser le Constructeur qui prend un Dictionnaire. Voir cet exemple
Et juste pour le fun.. Vous pouvez utiliser LINQ! Ce qui est un peu plus à l'approche Générique.
Modifier
Cela devrait bien fonctionner avec les Types de Référence, j'ai essayé le suivant:
Et le code modifié à partir de ci-dessus
Les sorties qui "Filip Ekberg".
IEqualityComparer
de la sourceIDictionary
, c'est à dire si vous avez uneIDictionary
avec unStringComparer.OrdinalIgnoreCase
.dict["First"].Name
et il va également être modifié danssecondDict["First"].Name
. La suppression d'une collection n'est pas la même chose que de le modifier. Aussi, si vous allez utiliser Linq: justedict.ToDictionary
plutôt que(from x in dict select x).ToDictionary
.C'est un moyen rapide et sale méthode clone une fois, j'ai écrit...l'idée de départ est de CodeProject, je pense.
Useage:
Juste à cause quelqu'un a besoin de l'vb.net version