/ / Iterando através de todos os membros públicos de uma instância de um objeto - vb.net, classe, propriedades, variáveis ​​de instância, instanceof

Iterando através de todos os membros públicos de uma instância de um objeto - vb.net, classe, propriedades, variáveis ​​de instância, instância de

Eu tenho uma classe chamada foo. Foo tem centenas de propriedades. Eu tenho uma lista (de foo) que contém todas as minhas instâncias de foo. Desejo percorrer todas as instâncias foo e listar todos os nomes e valores de propriedades para cada instância. pseudo-código:

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

Respostas:

1 para resposta № 1

Qual é a pergunta aqui?

Sugira usar Linq / lambda em vez de regularFaça um loop com "Parallel.For each" e "synclock" na busca de propriedades. Além disso, em vez de usar a outstring, use o tipo KeyValue Pair para armazenar as propriedades do resultado. Uma lista de resultados ReadOnly também pode melhorar o desempenho.


0 para resposta № 2

Você pode usar a reflexão para encontrar as propriedades e obter os valores. O desempenho pode não ser bom para uma lista grande.

" 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