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
Barbara StreisandOriginal
2025-01-03 05:57:42406Durchsuche

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
    }
}

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)));

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!

Stellungnahme:
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