【发布时间】:2017-08-28 05:17:43
【问题描述】:
我想根据列表项中包含的函数的结果对列表进行排序。该怎么做呢?
这是一个例子。假设我有以下对象:
Public Class MyListObject
Public MyText1 As String
Public MyText2 As String
Public Function AddSuffix(ByVal MySuffix As String) As String
Return Mytext1 & MySuffix
End Function
End Class
(为了举例,过度简化了)
之后我得到了这些对象的列表:
Dim ResultList As New List(Of MyListObject)
现在,例如,要按字段 MyText1 值对列表进行排序,我使用了这个:
ResultList = ResultList.OrderBy(Function(x) GetType(MyListObject).GetField("MyText1").GetValue(x)).ToList
(使用反射,所以我可以将字段名称作为字符串传递)
如何通过函数AddSuffix结果对这个列表进行排序,同时传递参数MySuffix?
我想它看起来像这样,但显然这不起作用
ResultList = ResultList.OrderBy(Function(x) GetType(MyListObject).GetField("AddSuffix(""_myCustomSuffix"")").GetValue(x)).ToList
PS。我意识到,在这个例子中,这个函数几乎没有意义。实际代码要复杂得多,并且该函数确实为每个列表项返回不同的可排序数据。
【问题讨论】:
标签: vb.net list sorting reflection