I'd use LINQ but it is up to you
Imports System.ComponentModel
Imports System.Reflection
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim selProp As IEnumerable(Of PropertyInfo)
selProp = From p In GetType(Sample).GetProperties()
From a In p.GetCustomAttributes
Where TypeOf a Is DescriptionAttribute
Select p
'OR
For Each p As PropertyInfo In GetType(Sample).GetProperties()
For Each a As Attribute In p.GetCustomAttributes
If TypeOf a Is DescriptionAttribute Then
End If
Next
Next
End Sub
End Class
Public Class Sample
<Description("Name")> Public Property Name As String = "name"
Public Property ID As Integer
<Description("Descr1")> Public Property Val1 As Integer
<Description("Descr2")> Public Property Val2 As Integer
<Obsolete("Descr3", False)> Public Property Val3 As String = "FOO"
End Class