我試圖創建一個導出Excel/CSV函數,它將遍歷一個自定義對象並首先輸出屬性名稱,然後輸出值。我只想在必要時使用反射,因此我試圖在輸出標題時保存屬性名稱,然後重新使用它們來打印值。遍歷自定義對象的屬性名稱和值
這可能嗎?我有點厭倦了在循環中使用反射,但有沒有更好的方法?
的僞代碼:
Dim Cust1 = New Customer("Tom", "123 Main Street")
Dim Cust2 = New Customer("Mike", "456 Main Street")
Dim Cust3 = New Customer("Joe", "789 Main Street")
Dim CustList As New Arraylist()
CustList.Add(Cust1)
CustList.Add(Cust2)
CustList.Add(Cust3)
CSVExport(CustList, New Customer())
Function CSVExport(List As ArrayList, CustomObject as Object) As StringWriter
Dim sw as Stringwriter
dim proplist as arraylist
'output header
Foreach CustProperty as System.Reflection.PropertyInfo CustomObject.GetType().GetProperties()
proplist.add(CustProperty.Name)
sw.write(CustProperty + ",")
EndFor
'output body
'??
'?? Here I'd like to loop through PropList and List instead of using reflection
'??
Return Sw
End Function
這會確保值以與屬性名稱相同的順序迭代嗎? – mga911 2009-09-01 21:34:13
是的,我認爲是。我正在做一個類似的項目,我正在處理和屬性按照我傳遞給他們的順序返回。正如我所說,我發佈的代碼是未經測試的,我在C#中工作。讓我知道它是否適合你! – 2009-09-01 22:04:56