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参数,按照一定的规格就好了

  • 相关阅读:
    [2020多校联考]甲虫
    .eww
    MinGW安装c-c++
    .竖梁上的两个孔最小距离可以是多少呢?PS15D
    .dwg(sw)-exb
    开始学emacs-1
    看jpg和png图片
    .系列化参数关系
    2015计划
    大蚂蚁在64位系统下,右键没有快发的解决方案
  • 原文地址:https://www.cnblogs.com/hedywqy/p/2116504.html
Copyright © 2011-2022 走看看