


Comment LINQ peut-il trouver efficacement tous les types dérivés d'un type de base spécifié ?
Recherche de types dérivés d'un type spécifié
En programmation, il est souvent nécessaire de déterminer tous les types dérivés d'un type de base donné. Traditionnellement, cela était réalisé grâce à des techniques laborieuses telles que l'itération sur tous les types dans les assemblys chargés et la vérification manuelle de l'assignabilité au type cible.
Cependant, une solution plus efficace et plus élégante existe en utilisant LINQ (Language Integrated Query) . L'extrait de code suivant fournit un moyen simple et performant d'accomplir cette tâche :
var listOfDerivedTypes = ( from domainAssembly in AppDomain.CurrentDomain.GetAssemblies() from type in domainAssembly.GetTypes() where typeof(BaseTypeName).IsAssignableFrom(type) select type).ToArray();
Syntaxe Fluent alternative :
L'expression LINQ peut également être écrite dans un format plus style fluide pour améliorer lisibilité :
var listOfDerivedTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(domainAssembly => domainAssembly.GetTypes()) .Where(type => typeof(BaseTypeName).IsAssignableFrom(type)) .ToArray();
Personnalisations :
- Uniquement les types visibles publiquement : Pour récupérer uniquement les types visibles publiquement, utilisez domainAssembly .GetExportedTypes() au lieu de domainAssembly.GetTypes().
- Exclure la classe de base d'origine : Pour empêcher le type de base d'origine d'être inclus dans les résultats, ajoutez && type != typeof(BaseTypeName) à la clause Where.
- Exclure les classes abstraites : Pour exclure les classes abstraites, ajoutez && ! type.IsAbstract à la clause Where.
- Types génériques : La gestion des types génériques nécessite des considérations supplémentaires. Pour obtenir des conseils, reportez-vous aux ressources liées dans la section « Détails ».
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quels sont les types de valeurs renvoyées par les fonctions du langage C? Qu'est-ce qui détermine la valeur de retour?

Gulc: Cibliothèque C construite à partir de zéro

C Fonction Langue Format de lettre ÉTAPES DE CONVERSION DE CAS

Quelles sont les définitions et les règles d'appel des fonctions du langage C et quelles sont les

Où est la valeur de retour de la fonction de langue C stockée en mémoire?

Utilisation distincte et partage de phrases

Comment utiliser efficacement les algorithmes du STL (trier, trouver, transformer, etc.)?

Comment fonctionne la bibliothèque de modèle standard C (STL)?
