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