1
リストアイテムに含まれる関数の結果でリストをソートしたい。それについてはどうしたらいいですか?関数の結果リストをソートする
ここは例です。のは、私は次のオブジェクトがあるとしましょう:
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
d反映、フィールド名を文字列として渡すことができます)
このリストを関数AddSuffix
の結果で並べ替えると同時に、パラメータMySuffix
を渡すことはできますか?
私はそれは次のようになります想像するが、明らかにこれは
ResultList = ResultList.OrderBy(Function(x) GetType(MyListObject).GetField("AddSuffix(""_myCustomSuffix"")").GetValue(x)).ToList
PSを動作しません。私は、この例では機能はかなり意味がないことを認識しています。実際のコードははるかに複雑で、その関数は各リスト項目に対して異なるソート可能なデータを返します。
すごいです。それは私が思ったよりずっと簡単でした。どちらの例も私の場合に適しています。ありがとうございました!! 最初はフィールド値でソートするためにリフレクションを使用しました - フィールド名を何とか文字列として渡す必要がありました。しかし、このケースでは、関数名の引数ではなく関数の引数を渡すだけでよいことが分かりました。したがって、反射の必要はありません。わーい。 –