linq 实现动态 orderby
class Pet
{
public string Name{get;set;}
public int Age{get;set;}
}
void Main()
{
Pet[] pets = { new Pet { Name="Tim", Age= },
new Pet { Name="Allen", Age= },
new Pet { Name="Bill", Age= } }; //如果我们想根据Age进行排序 很容易想到这样来写:
var query= from p in pets
orderby p.Age
select p; query.ToList().ForEach(q=>Console.WriteLine(q.Name +" "+q.Age));
/* 得到结果:
Tim 18
Bill 20
Allen 22
*/ }
//但是有时项目内有多个排序条件 如有时要根据Name排序 有时要根据Age排序 何问起 hovertree.com
//这时我们就要用到动态排序:
void Main()
{
Pet[] pets = { new Pet { Name="Tim", Age= },
new Pet { Name="Allen", Age= },
new Pet { Name="Bill", Age= } };
Console.WriteLine("Before Orderby:/r/n");
pets.ToList().ForEach(p=>Console.WriteLine(p.Name +" "+p.Age)); var query= from p in pets
orderby GetPropertyValue(p,"Age")
select p; Console.WriteLine("/r/nAfter Orderby:/r/n");
query.ToList().ForEach(q=>Console.WriteLine(q.Name +" "+q.Age));
/*
Before Orderby:
Tim 18
Allen 22
Bill 20
After Orderby: Tim 18
Bill 20
Allen 22
*/
} /* 何问起 hovertree.com */
private static object GetPropertyValue(object obj, string property)
{
System.Reflection.PropertyInfo propertyInfo=obj.GetType().GetProperty(property);
return propertyInfo.GetValue(obj, null);
}
推荐:http://www.cnblogs.com/roucheng/p/dushubiji.html
linq 实现动态 orderby的更多相关文章
- C# linq查询 动态OrderBy
groupList是原始数据集合,List<T> sortOrder是排序类型,desc 或者asc sortName是排序属性名称 1.使用反射. private static obje ...
- .net core ef动态orderby
前言 最近在给大家写一套开源的.net core权限管理框架.现在已经写到前台UI + 后台动态查询的部分. 发现需要动态orderby但是网上没有现成的例子 二话不说上代码 建议namespace ...
- Linq 支持动态字查询集合, 也就是说根据传入的值进行查询。
Linq 支持动态字查询集合, 也就是说根据传入的值进行查询. 比如我们有个类Patient, 其中有个字段PatientName, 现在有Patient集合, 想要查询PatientName为&qu ...
- LINQ查询表达式---------orderby子句
LINQ查询表达式---------orderby子句 LINQ可以按元素的一个或多个属性对元素进行排序. class Program { public class PerInfo { public ...
- LINQ 如何动态创建 Where 子查询
还是那句话,十年河东,十年河西,莫欺少年穷! 学无止境,精益求精... 今天探讨下如何构造动态的LINQ子查询 LINQ,相信大家都写过,很简单,下面以一个基本的范例说明下: namespace Co ...
- System.Linq.Dynamic 动态查询
安装 VS->工具栏->NuGet程序管理器,System.Linq.Dynamic 注意: 使用动态查询必须先调用AsQueryable()方法,因为动态扩展仅适用于实现IQueryab ...
- LINQ中的OrderBy实现按照两个字段升序、降序排序操作
在公司或许有这种需求,先根据第一个某个字段按照升序排序,然后如果相同,在按照第二个某个字降序排序,我们该怎么去实现呢? 现在来教教大家分别使用Labmda和LINQ进行这种操作. 1.先按照第一个字段 ...
- [转贴]Linq之动态查询
最近写Linq碰到一个问题, 就是如果要写一个查询系统,这个系统里面有很多TextBox可以填, 然后捞出符合各个字段的数据. 在SQL查询的时候还满方便的,用字符串连连连就可以了, ( 也就是sql ...
- 【转】关于LinQ的动态Or查询
/// <summary> /// 构造函数使用True时:单个AND有效,多个AND有效:单个OR无效,多个OR无效:混合时写在AND后的OR有效 /// 构造函数使用False时:单个 ...
随机推荐
- Effective c#学习笔记(1)
条款1 使用属性代替可访问的数据成员 属性是个啥,谁在用? 1. C#的属性在被访问的时候看起来好像是数据成员,但其实是方法. 2. 在.NET框架中,一般使用属性表达公有数据成员. ...
- tr
参照http://www.cnblogs.com/djcsch2001/archive/2011/05/08/2040255.html tr -options set1 [set2] ---- set ...
- Atitit blend mode COLOR_DODGE 混合模式 “颜色减淡”模式
Atitit blend mode COLOR_DODGE 混合模式 "颜色减淡"模式 1.1. 混合模式是图像处理技术中的一个技术名词1 1.2. 目录1 1.3. 颜色减淡C ...
- salesforce 零基础学习(十七)Trigger用法
看本篇之前可以相应阅读以下Trigger相关文章: 1.https://developer.salesforce.com/page/Trigger_Frameworks_and_Apex_Trigge ...
- YaHoo 前端优化军规
1.Minimize HTTP Requests 减少HTTP请求 图片.css.script.flash等等这些都会增加http请求数,减少这些元素的数量就能减少响应时间.把多个JS.CSS在可能的 ...
- Servlet字符编码过滤器,实现图书信息的添加功能,避免产生文字乱码现象的产生
同样的代码,网上可以找到和我一模一样的代码和配置,比我的更加详细,但是我重新写一个博客的原因自是把错误的原因写出来,因为这就是个坑,我弄了一天,希望对你们有所帮助.只为初学者发现错误不知道怎么解决有所 ...
- 如何解决loadrunner回放日志中的乱码问题
在Loadrunner回放脚本时,会看到replay log区会展示脚本回放时的信息.有时候选中了打印服务器返回具体信息后,服务器返回的中文字符为乱码.怎么破? 原来Loadrunner的replay ...
- C++11模板类使用心得
1.推荐使用std::shared_ptr<TaskT>代替指针TaskT*使用,shared_ptr是一种智能指针,能自主销毁释放内存,在c++11中被引入,在多线程编程中有很大的用处, ...
- 【原创】NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战
概述 本文演示的是一个Android客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo. 当前由于NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能. ...
- KendoUI系列:PanelBar
<link href="@Url.Content("~/Content/kendo/2014.1.318/kendo.common.min.css")" ...