Maison > développement back-end > C++ > Comment dupliquer efficacement une liste générique en C #?

Comment dupliquer efficacement une liste générique en C #?

Mary-Kate Olsen
Libérer: 2025-01-30 20:05:12
original
470 Les gens l'ont consulté

How to Efficiently Duplicate a Generic List in C#?

Duplication efficace des listes génériques en C #

La création d'une copie d'une liste générique est une tâche fréquente en C #, bien que la langue manque d'une méthode directe list.Clone(). Cet article explore plusieurs stratégies efficaces pour la duplication des listes.

Duplication de la liste de types de valeur:

Pour les listes contenant des types de valeur, la copie est simple:

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

Cela crée une nouvelle liste avec des éléments identiques à l'original. Notez que cela effectue une copie superficielle pour les types de valeur.

Listes de type de référence de copie profonde:

Avec les types de référence, une copie profonde est nécessaire pour éviter les références d'objets partagés. Si vos éléments implémentent 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

Cela itère et clones chaque élément individuellement.

Tirant des constructeurs de copie:

Si vos éléments ont des constructeurs de copie mais n'implémentent pas ICloneable:

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

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

Ceci utilise le constructeur de copie pour chaque élément.

Méthodes de clonage personnalisées:

Pour des scénarios plus complexes, envisagez une méthode de copie personnalisée (par exemple, YourType.CopyFrom()) ou une méthode d'usine pour fournir un contrôle à grain fin sur le processus de clonage.

Encapsulation pour la réutilisabilité:

Pour améliorer l'organisation du code et la réutilisabilité, enveloppez ces approches en méthodes d'extension ou en fonctions d'assistance autonomes.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal