在select中帮助Linq和动态对象属性

时间:2011-03-09 21:52:08

标签: linq dynamic

Linq newb闹钟会响起大声的声音,也可能是一般的新警报,但我不得不问这个问题,因为它让我疯了。我有一个对象MyObject,它有一些属性,例如身份证号码。除了2之外,还有更多的属性,但你明白了。

我有这些对象的通用列表。从这个列表中我需要根据MyObject的动态设置属性生成项的子集。所以,而不是

Dim lst as New List(Of MyObject)
... code to populate list ...
Dim newlist = (From o In lst Select o.Number Distinct).ToList()

我想有一些东西允许我动态查询select中对象的属性,例如

Dim lst as New List(Of MyObject)
... code to populate list ...
Dim newlist = (From o In lst Select o.GetType().GetProperty("Number").Name Distinct).ToList()

显然上面的内容不起作用,因为它只返回属性名称的单项列表。是否有一种相对简单的方法可以在Linq语句中动态选择对象属性?

任何和所有帮助将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:1)

请改为尝试:

o.GetType().GetProperty("Number").GetValue(o)

...在您的Select子句中。