博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lambda 动态表达式(排序)
阅读量:5099 次
发布时间:2019-06-13

本文共 1823 字,大约阅读时间需要 6 分钟。

网上看到的:

class Program    {        static List
list = new List
() { 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
OrderBy
(this IQueryable
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
(resultExpression); } }

转载于:https://www.cnblogs.com/hanjun0612/p/9779713.html

你可能感兴趣的文章
《绿色·精简·性感·迷你版》易语言,小到不可想象
查看>>
Java Web学习总结(13)Listener监听器
查看>>
开始Flask项目
查看>>
Ruby:多线程队列(Queue)下载博客文章到本地
查看>>
Android打包key密码丢失找回
查看>>
03 jQuery动画
查看>>
医药箱APP静态小项目
查看>>
安装使用eclipse
查看>>
VC6.0调试技巧(一)(转)
查看>>
linux命令
查看>>
类库与框架,强类型与弱类型的闲聊
查看>>
webView添加头视图
查看>>
php match_model的简单使用
查看>>
在NT中直接访问物理内存
查看>>
Intel HEX 文件格式
查看>>
SIP服务器性能测试工具SIPp使用指导(转)
查看>>
php_扑克类
查看>>
回调没用,加上iframe提交表单
查看>>
(安卓)一般安卓开始界面 Loding 跳转 实例 ---亲测!
查看>>
Mysql 索引优化 - 1
查看>>