Maison > développement back-end > C++ > Comment cloner efficacement les listes génériques en C #?

Comment cloner efficacement les listes génériques en C #?

DDD
Libérer: 2025-01-30 20:11:09
original
526 Les gens l'ont consulté

How to Effectively Clone Generic Lists in C#?

Le clone de la liste générique du C #

En C #, la liste des objets génériques clonés est un défi, car la classe intégrée -in

ne fait pas directement "clone ()". Cependant, il existe plusieurs façons d'atteindre cette fonction.

List<T> Le clone de type de valeur

Si l'élément de la liste est un type de valeur, vous pouvez simplement créer une nouvelle liste contenant les mêmes éléments:

Utiliser le type de référence cloné iclonable

<code class="language-csharp">List<MyValueType> newList = new List<MyValueType>(oldList);</code>
Copier après la connexion

Si l'élément est un type de référence et que vous devez être en profondeur (c'est-à-dire que la nouvelle liste et ses éléments n'ont rien à voir avec la liste originale), vous pouvez utiliser l'interface :

"iclonable" dans le code ci-dessus est remplacé par le type d'élément réel de ICloneable.

<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>
Copier après la connexion
Utilisez le type de référence du clone du constructeur de copie

ICloneable

Si votre type d'élément ne prend pas en charge

mais a un constructeur de copie, vous pouvez utiliser les méthodes suivantes:

Cette méthode utilise un constructeur de copie pour créer une nouvelle instance de chaque élément.

ICloneable Méthode du clone personnalisé

<code class="language-csharp">List<MyReferenceType> oldList = new List<MyReferenceType>();
List<MyReferenceType> newList = new List<MyReferenceType>(oldList.Count);

oldList.ForEach(item => newList.Add(new MyReferenceType(item)));</code>
Copier après la connexion

Pour plus de commodité, vous pouvez encapsuler l'une de ces méthodes dans la méthode de clonage personnalisée:

Cette méthode accepte une liste générique et renvoie une nouvelle liste de clones, en sélectionnant la méthode de clonage appropriée en fonction du type d'élément.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal