Maison > développement back-end > C++ > Comment créer des copies complètes de liste pour une véritable indépendance des objets ?

Comment créer des copies complètes de liste pour une véritable indépendance des objets ?

Patricia Arquette
Libérer: 2025-01-11 18:32:44
original
138 Les gens l'ont consulté

How to Create Deep Copies of List for True Object Independence?

Atteindre une véritable indépendance des objets avec des copies complètes de listes

L'exemple de code montre deux listes (List<Book> books_1 et List<Book> books_2) contenant des Book objets. Une simple affectation fait que books_2 apparaît comme une copie de books_1, mais les modifications apportées à books_2 affectent également books_1 car ils partagent des références aux mêmes Book objets.

L'importance du clonage profond

Pour créer des copies véritablement indépendantes, il faut éviter les références partagées. Cela nécessite de créer des Book objets entièrement nouveaux et de les remplir avec les données des originaux – un processus appelé copie approfondie.

Mise en œuvre de la copie approfondie

Des copies complètes peuvent être créées efficacement à l'aide d'une expression lambda avec les méthodes Select ou ConvertAll :

Utilisation de Select :

<code class="language-csharp">List<Book> books_2 = books_1.Select(book => new Book(book.title)).ToList();</code>
Copier après la connexion

Utilisation de ConvertAll :

<code class="language-csharp">List<Book> books_2 = books_1.ConvertAll(book => new Book(book.title));</code>
Copier après la connexion

Les deux approches génèrent de nouvelles Book instances dans l'expression lambda, copiant la propriété title des objets Book d'origine. La liste books_2 résultante contient des objets Book complètement nouveaux et indépendants.

Avantages de la copie approfondie

La copie approfondie garantit que les modifications apportées à books_2 n'affecteront pas books_1. Ceci est crucial lorsque vous devez travailler avec une copie modifiée sans altérer les données originales. Cette approche garantit l'intégrité des données et évite les effets secondaires involontaires.

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