首页 技术 正文
技术 2022年11月9日
0 收藏 388 点赞 2,216 浏览 1331 个字

下面这个学习,把List<T>转换为Datatable。

下面先创建一个对象T:
把List<T>转换为DataTable

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#扩展方法:
把List<T>转换为DataTable

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打印至控制台上:
把List<T>转换为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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,489
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,904
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,489
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,290