Lambda动态排序
private static IList<T> IListOrderBy<T>(IList<T> list, string propertyName) where T : new()
{
if (list == null || list.Count == 0)
{
return list;
} Type elementType = Queryable.AsQueryable(list).ElementType;
//PropertyInfo propertyInfo = elementType.GetProperty(propertyName);
ParameterExpression parameter = Expression.Parameter(elementType, "");
Expression body = Expression.PropertyOrField(parameter, propertyName); Expression sourceExpression = list.AsQueryable().Expression; //Type sourcePropertyType = propertyInfo.PropertyType;
var selector = Expression.Lambda(body, parameter); Expression lambda = Expression.Call(typeof(Queryable), "OrderBy", new Type[]
{
elementType,
selector.Body.Type
}, sourceExpression, selector); //Expression lambda = Expression.Call(typeof(Queryable), "OrderBy", new Type[]
//{
// elementType,
// sourcePropertyType
//}, sourceExpression, Expression.Lambda(body, parameter));
var query = list.AsQueryable().Provider.CreateQuery<T>(lambda);
return query.ToList<T>(); }
Lambda动态排序的更多相关文章
- Lambda动态排序分页通用方法
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...
- Lambda动态排序通用方法
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...
- linq扩展之动态排序
前两天看QQ群里面,一位朋友问的问题,说在linq中怎么实现动态排序呢,自己想了半天,没有头绪,网上找了下相关的资料,看了下,收益挺多,记录下来. 之前我们没有如果不知道动态排序的方法的话,我们可能会 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(17)-LinQ动态排序
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(17)-LinQ动态排序 首先修复程序中的一个BUG这个BUG在GridPager类中,把sord修改为s ...
- LinQ动态排序
LinQ动态排序 首先修复程序中的一个BUG这个BUG在GridPager类中,把sord修改为sort这个名称填写错误,会导致后台一直无法获取datagrid的排序字段 本来是没有这一讲的,为了使2 ...
- ActiveReports 报表应用教程 (9)---交互式报表之动态排序
在 ActiveReports 中除了提供对数据源进行排序的功能之外,还提供了最终用户排序功能,最终用户可以对报表进行区域内排序和整个数据源排序,结合数据钻取.过滤等功能可以让用户更方便地分析报表数据 ...
- excel动态去重和动态排序
其实去重和排序的方法很多,没有哪一种更好,实时去重总会省一些时间,刚好也练习了下数组公式 动态去重: =IF(ROW()<=COUNTA(员工基础数据!H:H),INDEX(员工基础数据!H:H ...
- php sortable 动态排序
php sortable 动态排序未分页版.php 预览图: <?php mysql_connect("localhost","root","r ...
- 写一个针对IQueryable<T>的扩展方法支持动态排序
所谓的动态排序是指支持任意字段.任意升序降序的排序.我们希望在客户端按如下格式写: localhost:8000/api/items?sort=titlelocalhost:8000/api/item ...
随机推荐
- android 调用系统相机拍照 获取原图
好吧,为了这个问题又折腾了一整天.之前在网上找来的方法,如果在onActivityResult中直接用data.getData()的方式来生成bitmap,其实获取的是拍照生成的缩略图!看看尺寸就 ...
- mysql load数据第一列丢失
mysql load数据第一列丢失 问题描述 MySQL表的结构如下: mysql> desc cms_msg_test_3; +----------------+--------------- ...
- 命令生成和运行android项目
转自:http://wiki.dourok.info/doku.php/%E7%BC%96%E7%A0%81/android/%E5%91%BD%E4%BB%A4%E8%A1%8C%E7%94%9F% ...
- HttpClient request payload post请求
RequestEntity entity = new StringRequestEntity(str, "text/html", "utf-8"); post. ...
- Faiss教程:GPU
Fassi通过CUDA支持GPU,要求3.5以上算力,float16要求CUDA7.5+ 通过index_gpu_to_cpu可以将索引从GPU复制到CPU,index_cpu_to_gpu 和 in ...
- resource.h
resource.h就是.rc文件的头文件.rc文件里的常量全在resource.h定义 .rc文件和resource.h 都是给project add resource 的时候VS 自动生成的.一般 ...
- java基础篇---XML解析(二)
XML解析之最流行的方式:DOM4J dom4j是使用java语言编写的,用于读,写,操作XML的一套组件 dom4j是一个开源的java组件,可从http://sourceforge.net/pro ...
- C语言 · 方程的解
给出方程组: 11x + 13y + 17z = 2471 13x + 17y + 11z = 2739 已知 x,y,z均为正整数,请你计算 x,y,z 相加和最小为多少. 作者注释:哎呀,不多 ...
- python使用pip离线安装库
一.前言及环境 1. 场景及整体思路 最近在做一个大数据项目,开发过程中用自己的机子安装了很多库,开发完之后需要部署到客户那边的环境中,但是客户那边的环境是不能联网的,于是就需要离线进行库的安装. 上 ...
- ML-DL-各种资源汇总
1.Used Libraries, Datasets, and Models 1.1 Libraries TensorFlow (from Google): https://www.tensorflo ...