Maison > développement back-end > C++ > Comment convertir une liste en liste dans .NET ?

Comment convertir une liste en liste dans .NET ?

Mary-Kate Olsen
Libérer: 2025-01-17 00:56:13
original
872 Les gens l'ont consulté

How to Convert a List to a List in .NET?

Transformation d'une liste en liste dans .NET

Ce guide explique comment convertir une liste d'objets Client (List<Client>) en une liste de leurs interfaces IDic correspondantes (List<IDic>).

Pourquoi la diffusion directe échoue

La conversion directe d'un type dérivé (comme Client) vers un type de base (IDic) est autorisée dans .NET. Cependant, l’inverse n’est pas simple en raison des limites de covariance. Ces restrictions empêchent les opérations dangereuses dans lesquelles une liste de types de base pourrait contenir de manière inattendue des éléments de type dérivé, préservant ainsi la sécurité des types.

Méthodes de conversion efficaces

Deux méthodes fiables permettent d'obtenir la conversion souhaitée :

1. Tirer parti de IEnumerable<IDic> (.NET 4 et versions ultérieures)

.NET 4 et les versions ultérieures prennent en charge la covariance avec IEnumerable<T>. Cela permet la conversion de List<Client> en IEnumerable<IDic>, permettant une itération sur des objets Client en tant qu'instances IDic.

2. Construire une nouvelle liste

Pour créer un List<IDic>, vous devez explicitement construire une nouvelle liste et la remplir avec les références de l'interface. .NET 4 propose la méthode ToList<T>() pour cela. .NET 3.5 utilise Cast<T>() suivi de ToList().

Remarque importante sur l'indépendance des données

Les deux techniques génèrent des listes distinctes, maintenant la sécurité des types. Surtout, les modifications apportées au List<Client> original ne mettront pas automatiquement à jour le nouveau List<IDic>. Seules les modifications directement apportées aux Client objets eux-mêmes seront visibles dans les deux listes.

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