迭代对象实例的所有公共成员

时间:2014-08-17 15:12:26

标签: vb.net class properties instance-variables 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 

2 个答案:

答案 0 :(得分:1)

这里有什么问题?

建议使用Linq / lambda而不是常规For循环,并在属性提取中使用“Parallel.For each”和“synclock”。也可以使用KeyValue Pair类型来存储结果属性,而不是使用超链接。 ReadOnly结果列表也可以提高性能。

答案 1 :(得分: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