如果你想遍历某个对象的所有属性名以及对应的值的话可以使用以下方法:
Person p = new Person();
p.UserName = "a";
p.Age = 12;
var properties = TypeDescriptor.GetProperties(p);
foreach (PropertyDescriptor propertyDescriptror in properties)
{
Console.WriteLine(string.Format("属性名:{0},值:{1}", propertyDescriptror.Name,propertyDescriptror.GetValue(p)));
}