/ /オブジェクトのインスタンスのすべてのパブリックメンバーを反復処理-vb.net、クラス、プロパティ、インスタンス変数、instanceof

オブジェクトのインスタンスのすべてのパブリックメンバーを反復する - vb.net、クラス、プロパティ、インスタンス変数、instanceof

fooというクラスがあります。 Fooには何百ものプロパティがあります。 fooのすべてのインスタンスを含む(fooの)リストがあります。すべてのfooインスタンスをループし、各インスタンスのすべてのプロパティ名と値を一覧表示します。擬似コード:

for i as integer = 0 to foolist.count - 1
for each prop as property in foolist.item(i)
outstring.add(prop.name, prop.value)
each
each

回答:

回答№1は1

ここの質問は何ですか?

通常のForの代わりにLinq / lambdaを使用することを提案しますプロパティフェッチ内で「Parallel.For each」と「synclock」でループします。また、outstringの代わりに、KeyValue Pair型を使用して結果プロパティを保存します。結果の読み取り専用リストもパフォーマンスを向上させる可能性があります。


回答№2の場合は0

リフレクションを使用して、プロパティを見つけて値を取得できます。リストが大きい場合、パフォーマンスが低下する場合があります。

" Get the list of properties
Dim props = GetType(Foo).GetProperties()

For Each f In foolist
" Show the value for each property
For Each p In props
Console.WriteLine("{0} - {1}", p.Name, p.GetValue(f))
Next
Next