zoukankan      html  css  js  c++  java
  • List转换DataTable

        /// <summary>
        
    /// 将泛类型集合List类转换成DataTable
        
    /// </summary>
        
    /// <param name="list">泛类型集合</param>
        
    /// <returns></returns>
        public static DataTable ListToDataTable<T>(List<T> entitys)
        {
            
    //检查实体集合不能为空
            if (entitys == null || entitys.Count < 1)
            {
                
    throw new Exception("需转换的集合为空");
            }
            
    //取出第一个实体的所有Propertie
            Type entityType = entitys[0].GetType();
            PropertyInfo[] entityProperties 
    = entityType.GetProperties();

            
    //生成DataTable的structure
            
    //生产代码中,应将生成的DataTable结构Cache起来,此处略
            DataTable dt = new DataTable();
            
    for (int i = 0; i < entityProperties.Length; i++)
            {
                
    //dt.Columns.Add(entityProperties[i].Name, entityProperties[i].PropertyType);
                dt.Columns.Add(entityProperties[i].Name);
            }
            
    //将所有entity添加到DataTable中
            foreach (object entity in entitys)
            {
                
    //检查所有的的实体都为同一类型
                if (entity.GetType() != entityType)
                {
                    
    throw new Exception("要转换的集合元素类型不一致");
                }
                
    object[] entityValues = new object[entityProperties.Length];
                
    for (int i = 0; i < entityProperties.Length; i++)
                {
                    entityValues[i] 
    = entityProperties[i].GetValue(entity, null);
                }
                dt.Rows.Add(entityValues);
            }
            
    return dt;
        }
  • 相关阅读:
    一台Ubuntu server上安装多实例MySQL
    用VirtualBox构建MySQL测试环境笔记
    Mac点滴
    MySQL复制(三) --- 高可用性和复制
    Linux性能监控的几个工具(转)
    前端读者 | Javascript设计模式理论与实战:状态模式
    前端读者 | 为什么页面跟设计稿差距这么大?是啊!为毛啊?
    前端读者 | 由setTimeout引发的JS引擎运行机制的研究
    前端读者 | Web App开发入门
    前端读者 | 从一行代码里面学点JavaScript
  • 原文地址:https://www.cnblogs.com/cyan/p/1595399.html
Copyright © 2011-2022 走看看