Clonage d'un dictionnaire générique .NET : réalisation de copies superficielles ou profondes
Lorsque vous travaillez avec un dictionnaire générique
Si vous recherchez une copie superficielle, dans laquelle seuls les objets de niveau supérieur sont copiés, l'approche constructeur est fortement recommandée. L'autre méthode décrite dans cet article fournit un mécanisme de clonage, qui peut être avantageux dans certains scénarios.
Détermination de la profondeur de copie
La profondeur de la copie dépend de la spécificités de vos besoins. Une copie superficielle copie uniquement les objets de niveau supérieur, tandis qu'une copie approfondie réplique l'intégralité du graphique d'objets, y compris tous les objets imbriqués.
Choisir la bonne méthode
Pour un copie superficielle, l'approche la plus simple consiste à utiliser le constructeur qui prend un dictionnaire existant en entrée. Cela crée effectivement un nouveau dictionnaire avec des paires clé-valeur identiques. Si vous préférez, vous pouvez également utiliser la méthode ToDictionary de LINQ pour y parvenir, comme démontré ci-dessous :
var newDictionary = oldDictionary.ToDictionary(entry => entry.Key, entry => entry.Value);
Pour effectuer une copie complète lorsque T implémente ICloneable, vous pouvez à nouveau exploiter la méthode ToDictionary, comme indiqué ici :
var newDictionary = oldDictionary.ToDictionary(entry => entry.Key, entry => (T) entry.Value.Clone());
Ces approches devraient vous fournir le mécanisme de copie approprié à vos besoins spécifiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!