/ / Esplorazione di tutti i membri pubblici di un'istanza di un oggetto: vb.net, classe, proprietà, variabili-istanza, istanza di

Iterazione attraverso tutti i membri pubblici di un'istanza di un oggetto: vb.net, classe, proprietà, istanza-variabili, instanceof

Ho una classe chiamata foo. Foo ha centinaia di proprietà. Ho un elenco (di foo) che contiene tutte le mie istanze di foo. Voglio passare in rassegna tutte le istanze foo ed elencare tutti i nomi e i valori delle proprietà per ciascuna istanza. pseudocodice:

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

risposte:

1 per risposta № 1

Qual è la domanda qui?

Suggerisci di usare Linq / lambda invece del normale ForRipeti con "Parallel.For each" e "synclock" all'interno del recupero della proprietà. Inoltre, anziché estendere, utilizzare il tipo di coppia KeyValue per memorizzare le proprietà dei risultati. Un elenco di risultati ReadOnly potrebbe anche migliorare le prestazioni.


0 per risposta № 2

È possibile utilizzare la riflessione per trovare le proprietà e ottenere i valori. Le prestazioni potrebbero non essere eccezionali per un ampio elenco.

" 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