2012-05-26 58 views
1

環境獲得屬性名。從泛型列表

有沒有辦法獲得屬性名稱,因爲我想讓它們成爲我構建的csv文件中的標題行?

,所以我要尋找的結果是string = "ProductId,ProductName,UnitPrice"

+0

http://stackoverflow.com/a/1998049/139698 - 我喜歡下面的解決方案,但我沒有理解使用字符串構建器對可能的性能所做的評論。所以我做了一些搜索,發現以下並實現它:http://www.csharp411.com/c-convert-string-to-stream-and-stream-to-string/ - 這是評論所指的是什麼? – Rod

回答

1

可以使用TypeDescriptor類(比普通的反射更有效):

string.Join(",", TypeDescriptor.GetProperties(instance).Select(p => p.Name)) 
3
var headers = this.GetType().GetProperties().Select(p => p.Name).Aggregate((p1, p2) => p1 + "," + p2); 
0
String.Join(",", typeof(Product).GetProperties().Select(p => p.Name)) 

如果你不想使用Linq,你可以通過的GetProperties返回的PropertyInfo數組進行迭代,並串聯的名字到一個字符串。