当前位置: 首页 > 编程语言 > C#

动态创建lambda表达式+linq+OrderByDescending分享

时间:2023-04-10 22:30:02 C#

动态创建lambda表达式+linq+OrderByDescending如何在linq中的orderby函数中创建动态lambda表达式传递给我?我基本上想转换queryResults.OrderByDescending();在queryResults.OrderByDescending(myCustomGeneratedLambdaExp);其中myCustomGeneratedLambdaExp应该是一个包含x=>x.name的字符串。谢谢我不确定您到底需要什么动态lambda表达式。无论如何,动态生成lambda表达式的最佳方法是使用表达式树。这里有两个关于这个主题的很好的教程:这段代码生成一个lambda表达式,就像你要求的那样("x=>x.name"):MemberInfomember=typeof(AClassWithANameProperty).GetProperty("Name");//创建'x'参数表达式ParameterExpressionxParameter=Expression.Parameter(typeof(object),"x");//创建正文表达式Expressionbody=Expression.MakeMemberAccess(targetParameter,member);//创建并编译lambdavarlambda=Expression.Lambda(Expression.Convert(body,typeof(string)),targetParameter);返回lambda.Compile();希望这有助于查看动态LINQ或者,您可以使用C#4中的switch语句、反射或动态类型根据提供的字段名称返回一个值。这也是之前的死亡。以上就是C#学习教程:动态创建lambdas表达式+linq+OrderByDescending,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: