网上看到的:

class Program
{ static List<User> list = new List<User>()
{
new User(){ID=1,Name="Hello",Age=17,Hobby="a"},
new User(){ID=2,Name="Boy",Age=50,Hobby="z"},
new User(){ID=3,Name="Girl",Age=33,Hobby="x"},
new User(){ID=4,Name="Fox",Age=43,Hobby="b"},
new User(){ID=5,Name="Fire",Age=17,Hobby="f"},
}; static void Main(string[] args)
{
var q = list.AsQueryable().OrderBy("Name", true); q.ToList().ForEach(x => Console.WriteLine(string.Format("ID:{0},Name:{1},Age:{2},Hobby:{3}", x.ID, x.Name, x.Age, x.Hobby))); Console.ReadLine();
} } public class User
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Hobby { get; set; }
} //动态表达式
public static class Test
{ public static IQueryable<TEntity> OrderBy<TEntity>(this IQueryable<TEntity> source, string propertyName,
bool asc = true) where TEntity : class
{
string command = asc ? "OrderBy" : "OrderByDescending"; var type = typeof(TEntity);
var property = type.GetProperty(propertyName);
var parameter = Expression.Parameter(type, "p");
var propertyAccess = Expression.MakeMemberAccess(parameter, property);
var orderByExpression = Expression.Lambda(propertyAccess, parameter);
var resultExpression = Expression.Call(typeof(Queryable), command, new Type[] { type, property.PropertyType }, source.Expression, Expression.Quote(orderByExpression)); return source.Provider.CreateQuery<TEntity>(resultExpression);
} }

Lambda 动态表达式(排序)的更多相关文章

  1. 记录Linq中lambda动态表达式的使用方式

    项目中有的时候我们会用到动态表达式的方式去查询数据,这里简单记录下个人的使用方式,方便使用↓ //构建参数表达式 ParameterExpression parameter = Expression. ...

  2. lambda表达式排序

    lambda表达式排序简洁 1.给一个字符串数组: String[] atp = {"2016-06-28 08:00:00", "2017-12-05 19:17:32 ...

  3. Python的lambda函数与排序

    Python的lambda函数与排序 2010-03-02 15:02 2809人阅读 评论(0) 收藏 举报 lambdapythonlistlispclass工作   目录(?)[+]   前几天 ...

  4. C#动态表达式计算

    C#动态表达式计算 应该有不少人开发过程中遇到过这样的需求,我们直接看图说话: 如上图所示,其中Entity为实体类,其中包括五个属性,该五个属性的值分别来自于数据库查询结果: 用户通过可视化界面进行 ...

  5. C#动态表达式计算(续2)

    上两篇废话太多,这一次我就不多说了,由于代码比较简单,可以直接从https://github.com/scottshare/DynamicExpress.git地址下载. 以下说明一下使用方法: Dy ...

  6. VS2012 编译报错:找不到编译动态表达式所需的一个或多个类型。是否缺少引用?

    今天编译公司项目,原本项目是3.5,由于现在要用到dynamic ,把target 改为4.0 ,编译时 报错误  “找不到编译动态表达式所需的一个或多个类型.是否缺少引用?”,然后根据另一个提示排错 ...

  7. Lambda的分类(语句Lambda和表达式Lambda)

    学习自 <C#本质论> Overview 在上一文中,我们简而又简的了解了一下,匿名方法和Lambda表达式,关于匿名方法这里暂且不表,本文我们来更加详细的了解一下Lambda表达式. 本 ...

  8. 找不到编译动态表达式所需的一种或多种类型。是否缺少对 Microsoft.CSharp.dll 和 System.Core.dll 的引用?

    提示“找不到编译动态表达式所需的一种或多种类型.是否缺少对 Microsoft.CSharp.dll 和 System.Core.dll 的引用? ”错误 解决方法:   将引入的COM对象(misc ...

  9. C#调用Excel报 error CS1969: 找不到编译动态表达式所需的一个或多个类型。是否缺少引用?

    转自[http://blog.csdn.net/bodybo/article/details/43191319] 程序需要读取Exel文件,有如下代码段 object oMissing = Syste ...

随机推荐

  1. redis-trib.rb命令详解

    redis-trib.rb是官方提供的Redis Cluster的管理工具,无需额外下载,默认位于源码包的src目录下,但因该工具是用ruby开发的,所以需要准备相关的依赖环境. 准备redis-tr ...

  2. IDEA报错Error:Module 'shop-common' production: java.lang.IndexOutOfBoundsException

    问题描述: 本来项目是正常的,编译.运行.启动都是OK的,但是在一次电脑重启后,出现了以上这个问题:Error:Module 'shop-common' production: java.lang.I ...

  3. Jmeter(三十八)while控制器实现ssh三次重连

    在jmeter中,可以使用SSH协议连接主机进行相关操作, 步骤如下 首先添加一个ssh command  我们的测试交流群:317765580 在command中填写远程连接的必要信息 结果树中可以 ...

  4. Final Destination II -- 矩阵快速幂模板题

    求f[n]=f[n-1]+f[n-2]+f[n-3] 我们知道 f[n] f[n-1] f[n-2]         f[n-1]  f[n-2]  f[n-3]         1    1    ...

  5. python的循环和选择

    一.python的选择结构: python的选择结构有两种选择结构一种是单选择(if...else)另一种则是多选择结构(if ...elif...elif) 下面用代码来实现: 1.if....el ...

  6. 07-nodejs中npm的使用

    NPM是什么? 简单的说,npm就是JavaScript的包管理工具.类似Java语法中的maven,gradle,python中的pip. 安装 傻瓜式的安装. 第一步:打开https://node ...

  7. Jenkins redeploy artifacts

    jenkins redeploy artifacts 按钮 - 开源中国https://www.oschina.net/question/3045293_2247829 Jenkins 构建失败后通过 ...

  8. Laravel渴求式加载(比较容易理解理解load与with关系)

    渴求式加载 当以属性方式访问 Eloquent关联关系的时候,关联关系数据是「懒惰式加载」的,这意味着关联关系数据直到第一次访问的时候才被加载.不过,Eloquent 还可以在查询父级模型的同时「渴求 ...

  9. 临时的ThisCall

    // 获取当前定位 changeCity: function () { let that = this; that.locationClose(); Upj._changeCity().then((d ...

  10. k8s使用Glusterfs动态生成pv

    一.环境介绍 [root@k8s-m ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4 ...