/// <summary>
/// 根据指定属性名称对序列进行排序
/// </summary>
/// <typeparam name="TSource">source中的元素的类型</typeparam>
/// <param name="source">一个要排序的值序列</param>
/// <param name="property">属性名称</param>
/// <param name="descending">是否降序</param>
/// <returns></returns>
public static IQueryable<TSource> OrderBy<TSource>(this IQueryable<TSource> source, string property, bool descending) where TSource : class
{
ParameterExpression param = Expression.Parameter(typeof(TSource), "c");
PropertyInfo pi = typeof(TSource).GetProperty(property);
MemberExpression selector = Expression.MakeMemberAccess(param, pi);
LambdaExpression le = Expression.Lambda(selector, param);
string methodName = (descending) ? "OrderByDescending" : "OrderBy";
MethodCallExpression resultExp = Expression.Call(typeof(Queryable), methodName, new Type[] { typeof(TSource), pi.PropertyType }, source.Expression, le);
return source.Provider.CreateQuery<TSource>(resultExp);

items = SortLinQUtil.OrderBy(items, param.orderName, true);

dotnet + LinQ 按照指定的字段 和 排序方式排序的更多相关文章

  1. PHP 二维数组根据某个字段按指定排序方式排序

    /** * 二维数组根据某个字段按指定排序方式排序 * @param $arr array 二维数组 * @param $field string 指定字段 * @param int $sort_or ...

  2. 使用prompt输入一句英文句子和排序方式(升/降),将所有单词按排序方式排序后在网页上输出

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. MySql 去重且指定某字段在前的排序方法

    今天遇到一个棘手的数据查找并去重的问题: 情况: 1.取出数据库中的数据: 2.同一字段A,不同情况<值,如A值为:a1,a2>下取出的其他数据可能相同: 3.将2情况下的重复数据< ...

  4. 【C#】实现按Windows排序方式排序

    很多人或许都遇到过类似的问题,C#读取的文件列表默认是按ASCII排序的,这样会出现一个问题就是10会排在2的前面. 那么是否可以解决呢,答案是肯定的.虽然这个是很早之前遇到的问题,这次突然想起来,就 ...

  5. TreeSet的两种排序方式,含Comparable、Comparator

    1.排序的引入 由于TreeSet可以实现对元素按照某种规则进行排序,例如下面的例子 public class TreeSetDemo { public static void main(String ...

  6. LINQ 按多个字段排序(orderby、thenby、Take)

    LINQ 按多个字段排序(orderby.thenby.Take) orderby  子句解析为 OrderBy()方法,orderby descending 子句解析为OrderBy Descend ...

  7. Linq排序方式与Lambda排序方式比较以及OrderBy、ThenBy的使用

    沿用之前某一篇文章的实体类与EF操作类代码.数据库中增加几条数据 Linq 的排序方式,下面例子是根据RoleId 升序,Name降序 EFContext<Member> efMember ...

  8. MySQL的选则字段+联表+判断+排序(order by)

    MySQL的选则字段+联表+判断+排序(order by) 两个表:1.成绩单 2.查询名单 目标: 1.选中全部字段,用于输出. 2.成绩单中有很多人的成绩,第一步是希望通过联表,只查查询名单上的人 ...

  9. 浅析SQL查询语句未显式指定排序方式,无法保证同样的查询每次排序结果都一致的原因

    本文出处:http://www.cnblogs.com/wy123/p/6189100.html 标题有点拗口,来源于一个开发人员遇到的实际问题 先抛出问题:一个查询没有明确指定排序方式,那么,第二次 ...

随机推荐

  1. OC编码规范

    http://www.jianshu.com/p/8b76814b3663#class-constructor-methods

  2. 个人项目:WC

    一.GitHub项目地址:https://github.com/lseap/myWC 二.PSP表格: PSP2.1 Personal Software Process Stages 预估耗时(分钟) ...

  3. Linux系统下安装jdk及环境配置(两种方法)

    https://blog.csdn.net/qq_42815754/article/details/82968464 这里介绍两种linux环境下jdk的安装以及环境配置方法在windows系统安装j ...

  4. Centos7安装elasticSearch6

                                                    Elasticsearch6.0 1.Elasticsearch: Elasticsearch是一个基于 ...

  5. PHP扩展使用-GD

    一.相关函数 1. 获取信息 gd_info() #查看当前系统环境gd库支持的图片格式 getimagesize(imagefile) #获取图像大小,非GD库函数 imagex(imagefile ...

  6. 设计模式小议:state【转】

    转自:https://blog.csdn.net/goodboy1881/article/details/635963 这个模式使得软件可以在不同的state下面呈现出完全不同的特征 不同的theme ...

  7. vue导出文件下载

    项目当中有用到文件的导出功能,以此来总结 request({ /*url: this.exportUrl,*/ url: `************`, method: "GET" ...

  8. 模仿51cto搜索框

    做这个demo遇见的问题 1==>input type=submit有默认样式 padding:1px 6px所以将他去除 2==>input submit有默认样式 去除默认边框 bor ...

  9. 【买衣服】I'm looking for a jacket

    核心句型: I 'm looking for a jacket. 我想买一件夹克. 场景对话 A: Are you looking for anything? 您想买什么吗? B: Yes. I'm ...

  10. WordCount-JAVA版

    WordCountMapper import java.io.IOException; import org.apache.hadoop.io.IntWritable; import org.apac ...