把List<T>转换为DataTable
下面这个学习,把List<T>转换为Datatable。
下面先创建一个对象T:
class Ay
{
private int _ID;
public int ID
{
get { return _ID; }
set { _ID = value; }
} private string _Account;
public string Account
{
get { return _Account; }
set { _Account = value; }
} private string _Email;
public string Email
{
get { return _Email; }
set { _Email = value; }
} public Ay()
{ } public Ay(int id,string account,string email)
{
this._ID = id;
this._Account = account;
this._Email = email;
}
}
Source Code
此时,你可以写一个C#扩展方法:
public static DataTable ToDataTable<T>(this List<T> items)
{
DataTable dataTable = new DataTable(); PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in Props)
{
dataTable.Columns.Add(prop.Name);
} foreach (T obj in items)
{
var values = new object[Props.Length];
for (int i = ; i < Props.Length; i++)
{
values[i] = Props[i].GetValue(obj, null);
}
dataTable.Rows.Add(values);
} return dataTable;
}
Source Code
下面,我们在List<T>添加几笔记录,然后使用上面的扩展方法,把List<T> 转换为DataTable.
为了看到结果,再把DataTable打印至控制台上:
class Az
{
public void ConvertListToDataTableTextDemo()
{
List<Ay> ays = new List<Ay>()
{
new Ay() { ID=,Account="A0001",Email="A0001@email.com" },
new Ay() { ID=,Account="A0002",Email="A0002@email.com"},
new Ay() {ID=,Account="A0003",Email="A0003@email.com" }
}; DataTable dt = ays.ToDataTable(); foreach (DataRow row in dt.Rows)
{
Console.WriteLine();
for (int x = ; x < dt.Columns.Count; x++)
{
Console.Write(row[x].ToString() + " ");
}
} Console.WriteLine("\n\r"); }
}
Source Code
控制台输出的结果:
把List<T>转换为DataTable的更多相关文章
- 对象列表转换为DataTable或DataTable转换为对象列表.
/**********************************************************************************/ // 说明: 数据转换工具. ...
- linq之将IEnumerable<T>类型的集合转换为DataTable类型 (转载)
在考虑将表格数据导出成excel的时候,网上搜的时候找到一个特别合适的公共方法,可以将query查询出来的集合转换为datatable 需引用using System.Reflection; publ ...
- Json 字符串 转换为 DataTable数据集合
/// <summary> /// 将json转换为DataTable /// </summary> /// <param name="strJson" ...
- c#常用的Datable转换为json,以及json转换为DataTable操作方法
#region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> ...
- [工具类]泛型集合转换为DataTable
写在前面 在实际项目中,用到了将集合转换为DataTable,就试着封装了一个方法,记录一下. 代码 using System; using System.Collections.Generic; u ...
- 泛型集合转换为DataTable
在做项目中,遇到了将集合转换为DataTable的使用,在网上看了资料,在这里记录下来,分享. using System; using System.Collections.Generic; usin ...
- 【c#操作office】--OleDbDataAdapter 与OleDbDataReader方式读取excel,并转换为datatable
OleDbDataAdapter方式: /// <summary> /// 读取excel的表格放到DataTable中 ---OleDbDataAdapter /// </summ ...
- C#基础知识之泛型集合转换为DataTable
在做项目中,遇到了将集合转换为DataTable的使用,在网上看了资料,在这里记录下来,分享. using System; using System.Collections.Generic; usin ...
- Enumerable转换为DataTable
今天在项目组公共类库中发现一个 Enumerable类型转换为DataTable,写的挺精简的,拿出来跟大家共享一下. using System; using System.Collections.G ...
随机推荐
- web全栈架构师[笔记] — 02 数据交互
数据交互 一.http协议 基本特点 1.无状态的协议 2.连接过程:发送连接请求.响应接受.发送请求 3.消息分两块:头.体 http和https 二.form 基本属性 action——提交到哪儿 ...
- Android SDK Manager无法更新的解决方案
Android SDK Manager -> Tools -> Options HTTP Proxy Server:mirrors.neusoft.edu.cn HTTP Proxy Po ...
- BD是什么角色
BD是什么角色? 在一般创业公司里面,有了产品接下来就是运营了,而运营中很重要的一点就是BD,也就是所谓商务拓展了,俗一点说就是生意的合作拓展 https://www.jianshu.com/p/7d ...
- python第八十四天---十五周作业
后台管理页面: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- python第二十九天-----继续学习第三模块——前几天旅行去了
subprocess模块 import subprocess subprocess.getstatusoutput('dir')#接收字符串格式命令,返回元组形式,第1个元素是执行状态,第2个是命令结 ...
- 用python连接mysql失败总结
所用环境:python3,pycharm2018.2.4 先用mysql创建用户并授予相关权限 在我用python连接mysql时,一直提示连接不上,报错原因就是,用户没有被给予相关权限,比如查询,插 ...
- 分布式文件系统(HDFS)与 linux系统文件系统 对比
初次接触分布式文件系统,有很多迷惑.通过参考网络文章,这里进行对比一下Hadoop 分布式文件系统(HDFS)与 传统文件系统之间的关系: Linux 文件系统 分布式文件系统 块 块对应物理磁盘 ...
- win10怎么查看进程
1.在任务栏右击-任务管理器 2.
- 薛兆丰吴军何帆曾鸣万维刚李笑来罗永浩等得到APP专栏作者的书23本
最近看了何帆的<大局观>,是他在得到APP的专栏文章的精选.顺便整理以下最近两三年内看过的得到APP其他专栏与课程作者的得到精选文集和他们写过的其他的书共23本. 薛兆丰 4星|<薛 ...
- 请教MAC OS下PHP的mcrypt怎么安装
安装方法一: 通过Homebrew安装mcrypt,安装成功 [Shell] 纯文本查看 复制代码 brew install mcrypt MCrypt是一个功能强大的加密算法扩展库,它包括有22种算 ...