取得具有特定屬性的屬性清單
為了擷取擁有標記為非的特定屬性的公有屬性清單multiple(AllowMultiple 屬性設定為false),常見的方法是循環遍歷屬性並檢查屬性的
foreach (var property in t.GetProperties()) { var attributes = property.GetCustomAttributes(typeof(MyAttribute), true); if (attributes.Length == 1) { // Property with custom attribute } }
但是,實現相同結果的最佳化方法是利用LINQ 的where 子句和Attribute.IsDefined(),如下所示:
var properties = t.GetProperties().Where( property => Attribute.IsDefined(property, typeof(MyAttribute)));
此替代方法無需建立屬性實例,從而實現更有效率的方法。
以上是如何有效率地取得具有特定非多重屬性的屬性清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!