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 № 1Qual é 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