Le clonage efficace de la liste générique des génériques: dans l'analyse-profondeur
Instruction de question:
En C #, comment a fortement cloné une liste d'objets génériques? Bien que l'objet unique de la liste soit cloné, la liste elle-même n'a pas une méthode "Clone" construite.
Méthode 1: Le type de clonage
Le clone est très simple pour la liste générique des types de valeur. Créez simplement une nouvelle liste du même contenu que la liste originale:
Méthode 2: Copiez profondément le type de référence
<code class="language-csharp">List<你的类型> newList = new List<你的类型>(oldList);</code>
:
Cette méthode garantit que tous les objets de la liste des clones sont complètement indépendants avec les objets de la liste originale.
ICloneable
Méthode 3: Utilisez un constructeur de copie pour cloner
<code class="language-csharp">List<ICloneable> oldList = new List<ICloneable>(); List<ICloneable> newList = new List<ICloneable>(oldList.Count); oldList.ForEach((item) => { newList.Add((ICloneable)item.Clone()); });</code>
Lorsque les éléments de liste ne sont pas réalisés
mais ont un constructeur en double, vous pouvez utiliser différentes stratégies de clonage:Cette méthode utilise une copie de la nouvelle instance dans la liste des clones avec un constructeur de copie.
Autres suggestions ICloneable
<code class="language-csharp">List<你的类型> oldList = new List<你的类型>(); List<你的类型> newList = new List<你的类型>(oldList.Count); oldList.ForEach((item) => { newList.Add(new 你的类型(item)); });</code>
Copiez le constructeur: pour le type avec un état de définition clair, le constructeur de réplication fournit une méthode plus efficace et facile à maintenir pour créer une copie de profondeur. Méthode d'usine: Une méthode similaire à
peut être utilisée pour retourner de nouvelles instances de types qui doivent être nécessaires.
ICloneable
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!