カスタムオブジェクトを反復処理し、プロパティ名を出力してから値を出力するエクスポート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
はい、そうだと思います。私は、私が取り組んでいるプロジェクトで同様のことをやっています。プロパティを渡したのと同じ順序で返します。私が言ったように、私が投稿したコードはテストされていません。それがあなたのために働くかどうか私に教えてください! –