Maison >développement back-end >C++ >Comment puis-je obtenir efficacement une liste de propriétés avec un attribut spécifique non multiple ?

Comment puis-je obtenir efficacement une liste de propriétés avec un attribut spécifique non multiple ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-03 05:57:42468parcourir

How Can I Efficiently Get a List of Properties with a Specific Non-Multiple Attribute?

Obtention d'une liste de propriétés avec un attribut spécifique

Afin de récupérer une liste de propriétés publiques qui possèdent un certain attribut marqué comme non- multiple (attribut AllowMultiple défini sur false), une approche courante consiste à parcourir les propriétés et à vérifier l'attribut présence.

foreach (var property in t.GetProperties())
{
    var attributes = property.GetCustomAttributes(typeof(MyAttribute), true);
    if (attributes.Length == 1)
    {
        // Property with custom attribute
    }
}

Cependant, un moyen optimisé pour obtenir le même résultat consiste à utiliser la clause Where de LINQ avec Attribute.IsDefined() comme indiqué ci-dessous :

var properties = t.GetProperties().Where(
    property => Attribute.IsDefined(property, typeof(MyAttribute)));

Cette méthode alternative contourne le besoin de créer des instances d'attribut, ce qui se traduit par une approche plus efficace.

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!

Déclaration:
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