ソート用の式を作成しようとしています.1つのプロパティを使用してリストをソートするコードを記述しました。複数のソートを含む式を構築する
しかし、私は最初に1つのプロパティでソートする必要があります。次に2番目に別のプロパティなどでソートする必要があります。
私は、そのようなものを実装する式を作成したいと言っています:students.OrderBy(fistExpression.Compile()).ThenBy(secondImpression.Complie()).ThenBy(thirdExpression.Compile())
。
どのように動的にそのThenBy
メソッドを配置しますか?
Type studentType = typeof(Student);
ParameterExpression studentParam = Expression.Parameter(studentType, "x");
MemberInfo ageProperty = studentType.GetProperty("Age");
MemberExpression valueInNameProperty =
Expression.MakeMemberAccess(studentParam, ageProperty);
Expression<Func<Student, int>> orderByExpression =
Expression<Func<Student, int>>.Lambda<Func<Student, int>>(valueInNameProperty, studentParam);
var sortedStudents = students.OrderBy(orderByExpression.Compile());
明確にするために、一連の式を.OrderByと.ThenBy、coに渡すという機能を複製する.OrderByに渡すことができる単一の式を作成する方法を探しています起立? –
Dupe http://stackoverflow.com/questions/41244/dynamic-linq-orderby – aquinas