1
我想按其属性排序List(Of MyDynamicObject)
,其中MyDynamicObject
是ExpandoObject
。我有属性名称作为字符串,所以我需要使用某种反射来传递它们。对使用反射的属性对ExpanoObejct的列表进行排序
比方说,我有一个列表:
MyList = New List(Of Entry)
其中Entry
有一个属性MyProperty_01
。
现在我想按对象属性MyProperty_01
排序MyList
。
在静态对象和无反射的情况下,我会做这样的事情的:
MyList = MyList.OrderBy(Function(x) x.MyProperty_01).ToList
现在,如果我需要通过属性的字符串名字,我可以这样做:
Dim MyPropertyName As String = "MyProperty_01"
MyList = MyList.OrderBy(Function(x) GetType(Entry).GetProperty(MyPropertyName).GetValue(x)).ToList
其中Entry
是对象类的参考。
我该如何用ExpandoObject
做到这一点?如果是ExpandoObject
,我没有类参考。
所以这不起作用了。
Dim MyPropertyName As String = "MyProperty01"
MyList = MyList.OrderBy(Function(x) GetType().GetProperty(MyPropertyName).GetValue(x)).ToList
聪明的解决方案!谢谢! – 2015-03-13 09:59:38