Ok, j'ai un ensemble de très grands arbres identiques mis en mémoire (à renseigner avec des données non identiques [ils contiennent des informations à propos de choses à l'intérieur de chaque nœud]).Obtention d'une copie d'un grand objet (160000+ objet arborescence interne)
Je souhaite copier une seule instance de l'arborescence et remplir chaque copie avec un ensemble de données distinct. Cependant, pour l'instant, la copie en cache de l'arbre n'est pas copiée, mais simplement référencée et remplie avec chaque ensemble de données.
Comment puis-je forcer la méthode qui obtient l'arborescence vide mise en cache pour retourner une copie de l'objet, au lieu d'une référence?
Quelles classes utilisez-vous pour gérer votre arborescence et que les classes prennent en charge l'interface ICloneable? –
Il s'agit d'une classe arborescente personnalisée, construite à partir de zéro pour l'optimisation d'un problème de recherche/classification, et donc incroyablement légère pour la vitesse: chaque arbre contient plus de 160k nœuds, et c'est la version optimisée, l'implémentation naïve il rattrape plus de 10 fois ça. Ainsi, non, il n'est pas configuré pour prendre en charge icloneable. –
J'ai lu les commentaires que vous avez postés sur les autres réponses ici et je pense que vous devez en clarifier certains. Vous dites que vous voulez une copie, mais vous dites qu'il serait plutôt fou de copier l'arbre d'origine. Qu'est-ce que tu veux faire exactement? Il n'y a pas de mécanisme dans .NET save pour que l'interface ICloneable fasse quelque chose comme ça, donc vous allez devoir écrire du code, peu importe ce que vous finissez avec. Quelle est exactement votre question ici? –