Heim > Backend-Entwicklung > C++ > Wie kann ich effizient eine Liste von Eigenschaften mit einem bestimmten nicht-multiplen Attribut abrufen?

Wie kann ich effizient eine Liste von Eigenschaften mit einem bestimmten nicht-multiplen Attribut abrufen?

Barbara Streisand
Freigeben: 2025-01-03 05:57:42
Original
400 Leute haben es durchsucht

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

Eine Eigenschaftsliste mit einem bestimmten Attribut abrufen

Um eine Liste öffentlicher Eigenschaften abzurufen, die ein bestimmtes Attribut besitzen, das als nicht markiert ist multiple (Attribut „AllowMultiple“ auf „false“ gesetzt), besteht ein gängiger Ansatz darin, die Eigenschaften zu durchlaufen und nach den Attributen zu suchen Präsenz.

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

Eine optimierte Möglichkeit, das gleiche Ergebnis zu erzielen, besteht jedoch darin, die where-Klausel von LINQ zusammen mit Attribute.IsDefined() zu verwenden, wie unten gezeigt:

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

Diese alternative Methode umgeht die Notwendigkeit, Attributinstanzen zu erstellen, was zu einem effizienteren Ansatz führt.

Das obige ist der detaillierte Inhalt vonWie kann ich effizient eine Liste von Eigenschaften mit einem bestimmten nicht-multiplen Attribut abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage