环境:asp.net fx3.5
给定的
public class Product
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public decimal UnitPrice { get; set; }
}
我有一个List<Product>
集合。
有没有办法获取属性名称,因为我希望它们是我正在构建的csv文件中的标题行?
所以我要找的结果是string = "ProductId,ProductName,UnitPrice"
答案 0 :(得分:4)
var headers = this.GetType().GetProperties().Select(p => p.Name).Aggregate((p1, p2) => p1 + "," + p2);
答案 1 :(得分:2)
您可以使用TypeDescriptor
类(比普通反射更有效):
string.Join(",", TypeDescriptor.GetProperties(instance).Select(p => p.Name))
答案 2 :(得分:1)
String.Join(",", typeof(Product).GetProperties().Select(p => p.Name))
如果您不想使用Linq,您可以遍历GetProperties返回的PropertyInfo数组,并将名称连接成字符串。