zoukankan      html  css  js  c++  java
  • 【转】对实体类进行排序

    代码
    /// <summary>
            
    /// 对实体类进行排序
            
    /// </summary>
            
    /// <typeparam name="T">实体类型,如:User</typeparam>
            
    /// <param name="list">实体类的数组</param>
            
    /// <param name="order">排序字段(必须为属性)</param>
            
    /// <param name="asc">是否按正序排序</param>
            public static void Sort<T>(object[] list, string order, bool asc)
            {
                Type type 
    = typeof(T);
                PropertyInfo[] pros 
    = type.GetProperties();
                PropertyInfo pro 
    = pros[0];
                order 
    = order.ToLower();
                
    for (int i = 0; i < pros.Length; i++)
                {
                    
    if (pros[i].Name.ToLower().Equals(order))
                    {
                        pro 
    = pros[i];
                        
    break;
                    }
                }
                
    object obj;
                
    int j, k = 1;
                
    bool done = false;
                
    int len = list.Length;
                
    while (k < len && !done)
                {
                    done 
    = true;
                    
    for (j = 0; j < len - k; j++)
                    {
                        
    int b = pro.GetValue(list[j], null).ToString().CompareTo(pro.GetValue(list[j + 1], null).ToString());
                        
    if ((asc && b > 0|| (!asc && b < 0))
                        {
                            done 
    = false;
                            obj 
    = list[j];
                            list[j] 
    = list[j + 1];
                            list[j 
    + 1= obj;
                        }
                    }
                    k
    ++;
                }
            }
  • 相关阅读:
    Python入门6 —— 流程控制
    Python入门5 —— 基本运算符
    Python入门4 —— 输入与输出
    实用小工具 下载链接
    [笔记] BGP in the Data Center (O'Reilly 2017)
    数据中心网络:Spine-Leaf 架构设计综述(2016)
    Using Open vSwitch* with DPDK for Inter-VM NFV Applications
    hung_task
    TCPDUMP and IPv6 and perf trace --no-syscalls
    Go非缓冲/缓冲/双向/单向通道
  • 原文地址:https://www.cnblogs.com/gebenhagen/p/1735451.html
Copyright © 2011-2022 走看看