zoukankan      html  css  js  c++  java
  • LINQ orderby 排序妙用

    做排序,项目中发现好多地方要用到排序,什么正序、倒序、写的很累,不过为发现排序写一个综合方法很不错的

    1、得到某某的数据

      IEnumerable<xxxx> = .....................;

    2、得到要排序的参数orderby

      orderby参数格式:

      orderby = "CreateTime asc,Title desc";

    --------------------------------------------------------------------------

      OrderUsingSortExpression(res.AsQueryable(), orderby).AsEnumerable();

    3、对数据进行排序的方法

         public static IOrderedQueryable<TEntity> OrderUsingSortExpression<TEntity>(this IQueryable<TEntity> source, string sortExpression) where TEntity : class
            {
                String[] orderFields = sortExpression.Split(',');
                IOrderedQueryable<TEntity> result = null;
                for (int currentFieldIndex = 0; currentFieldIndex < orderFields.Length; currentFieldIndex++)
                {
                    String[] expressionPart = orderFields[currentFieldIndex].Trim().Split(' ');
                    String sortField = expressionPart[0];
                    Boolean sortDescending = (expressionPart.Length == 2) && (expressionPart[1].Equals("DESC", StringComparison.OrdinalIgnoreCase));
                    if (sortDescending)
                    {
                        result = currentFieldIndex == 0 ? source.OrderByDescending(sortField) : result.ThenByDescending(sortField);
                    }
                    else
                    {
                        result = currentFieldIndex == 0 ? source.OrderBy(sortField) : result.ThenBy(sortField);
                    }
                }
                return result;
            }

      4、这样所有的后台方法不论排序有多少个,只用定义一个orderby参数,按照一定的规格就好了

  • 相关阅读:
    读书-《智能时代》-机器智能正在革我们的命
    判断Http服务器是否支持支持断点续传
    最全Html标签Meta介绍
    用PHP整理照片和视频文件
    读书-《癌症.真相:医生也在读》-我所认识的癌症
    scrapy-redis组件配置用例
    Scrapy+seleninu抓取内容同时下载图片几个问题
    无界浏览器Chorme命令行开关
    Scrapy Crawl 运行出错 AttributeError: 'xxxSpider' object has no attribute '_rules' 的问题解决
    福利,OpenCV最新中文版官方教程来了
  • 原文地址:https://www.cnblogs.com/hedywqy/p/2116504.html
Copyright © 2011-2022 走看看