/// <summary>/// 将集合类转换成DataTable/// </summary>/// <param name="list">集合</param>/// <returns></returns>public static DataTable ToDataTable(IList list){DataTable result = new DataTable();if (list.Count > 0){PropertyInfo[] propertys = list[0].GetType().GetProperties();foreach (PropertyInfo pi in propertys){result.Columns.Add(pi.Name, pi.PropertyType);}for (int i = 0; i < list.Count; i++){ArrayList tempList = new ArrayList();foreach (PropertyInfo pi in propertys){object obj = pi.GetValue(list[i], null);tempList.Add(obj);}object[] array = tempList.ToArray();result.LoadDataRow(array, true);}}return result;}/// <summary>/// 将泛型集合类转换成DataTable/// </summary>/// <typeparam name="T">集合项类型</typeparam>/// <param name="list">集合</param>/// <returns>数据集(表)</returns>public static DataTable ToDataTable<T>(IList<T> list){return ConvertX.ToDataTable<T>(list, null);}/// <summary>/// 将泛型集合类转换成DataTable/// </summary>/// <typeparam name="T">集合项类型</typeparam>/// <param name="list">集合</param>/// <param name="propertyName">需要返回的列的列名</param>/// <returns>数据集(表)</returns>public static DataTable ToDataTable<T>(IList<T> list, params string[] propertyName){List<string> propertyNameList = new List<string>();if (propertyName != null)propertyNameList.AddRange(propertyName);DataTable result = new DataTable();if (list.Count > 0){PropertyInfo[] propertys = list[0].GetType().GetProperties();foreach (PropertyInfo pi in propertys){if (propertyNameList.Count == 0){result.Columns.Add(pi.Name, pi.PropertyType);}else{if (propertyNameList.Contains(pi.Name))result.Columns.Add(pi.Name, pi.PropertyType);}}for (int i = 0; i < list.Count; i++){ArrayList tempList = new ArrayList();foreach (PropertyInfo pi in propertys){if (propertyNameList.Count == 0){object obj = pi.GetValue(list[i], null);tempList.Add(obj);}else{if (propertyNameList.Contains(pi.Name)){object obj = pi.GetValue(list[i], null);tempList.Add(obj);}}}object[] array = tempList.ToArray();result.LoadDataRow(array, true);}}return result;}

转载于:https://www.cnblogs.com/jeffrey77/archive/2012/07/18/2598094.html

IList类转换成DataTable相关推荐

  1. 将FeatClass属性表高效率转换成DataTable

    把IFeatureClass\ ITable转换成DataTable,效率高. 方法一 ITable遍历行 1.用IFeatureClass属性查询的方式较慢,这样速度可提高几十倍. 2.避免了hre ...

  2. C#_List转换成DataTable

    /// <summary>/// 讲list集合转换成datatable/// </summary>/// <param name="list"> ...

  3. list 转换成datatable

    感谢网上的一位朋友 1 /// <summary> 2 60 /// 将集合类转换成DataTable 3 61 /// </summary> 4 62 /// <par ...

  4. JSONSerializer把类转换成JSON字符串

    JSONSerializer把类转换成JSON字符串 阅读优秀的代码真的是种享受,从ProMesh的项目中发现了现在的一段优美的代码,记下来,也让喜欢它的人有机会阅读到. //============ ...

  5. C#:CsvReader读取.CSV文件(转换成DataTable)

    原文引用:https://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader using LumenWorks.Framework.IO.Csv;u ...

  6. 一个java的DES加解密类转换成C#

    原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util;import java.security.*; //im ...

  7. 实体类转换成Xml格式实例

    最近在家公司实习,接触到了报关系统,有些海关报文是需要Xml格式来进行拼接的,所以就开始学起了将实体类转换成Xml格式的写法. 具体Xml是什么大家可以从这个链接点进去了解:Xml教程 我们在进行数据 ...

  8. jdk1.5的类转换成jdk1.4的类文件

    把jdk1.5环境下的类文件编译成1.4环境下的类文件,我使用的是Retrotranslator-1.2.2.使用Ant编译依赖三个jar文件,retrotranslator-transformer- ...

  9. C#怎样解析.CSV文件同时把类转换成JSON

    1.首先需要引用 Newtonsoft.Json 目的是为了把对象类直接转换为JSON,返回到前台 using Newtonsoft.Json; 2.定义一个类,存储返回的值 public class ...

最新文章

  1. php怎么删除多条,php 用checkbox一次性删除多条记录的方法
  2. “移花接木”修复E680i系统内部错误
  3. 创业者:创业要疯狂融资要理性
  4. echarts Cannot read property ‘getAttribute‘ of null 问题的解决方法
  5. java double类型保留两位小数4种方法
  6. castle activerecord mysql_Castle ActiveRecord配置中需要注意的地方
  7. 修改Linux内核启动图片
  8. 疯子的算法总结(六) 复杂排序算法 ① 归并排序 merge_sort()
  9. Orchard之生成新模板
  10. Java,JavaFX的流利设计风格文本字段和密码字段
  11. Android Glide图片加载框架(二)源码解析之with()
  12. c 表达式必须是可修改的左值_C++中的左值,右值,左值引用,右值引用
  13. 苹果市值突破2万亿美元;华为推出PC版HMS“擎云生态”;Android11将强制应用使用内置相机 | 极客头条
  14. BZOJ 4698: Sdoi2008 Sandy的卡片
  15. Head First设计模式读书笔记一 策略模式
  16. .styl格式的CSS样式文件是什么文件
  17. PS 如何制作 圆角矩形 图片
  18. 如何保持较长时间的专注
  19. 直播技术总结(一)流媒体服务器搭建,进行推流
  20. word2vec和word embedding有什么区别?

热门文章

  1. 分区partition是否只保存一部分数据?
  2. ubuntu18.10的header文件搜索路径
  3. 在线nltk分词和词性标注
  4. Please install [clang](http://clang.llvm.org/) or check configuration `clang.executable`
  5. 深度学习(三)——Autoencoder, 词向量
  6. 想上云,请评估与思考上云目的
  7. JS 装饰器(Decorator)场景实战
  8. [zz]GMM-HMM语音识别模型 原理篇
  9. BeanFactory not initialized or already closed - call 'refresh' before accessing beans
  10. ftp之高级配置——虚拟用户