C#实体对象List列表转换为DataTable
C# 全选
/// <summary>
/// 实体对象列表转换为DataTable
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static DataTable ToDataTable(this IList list)
{
if (list == null || list.Count == 0)
{
return new DataTable();
}
//获取T下所有的属性
Type entityType = list[0].GetType();
PropertyInfo[] entityProperties = entityType.GetProperties();
//表名=类名
var tableName = list[0].GetType().Name;
DataTable dt = new DataTable(tableName);
for (int i = 0; i < entityProperties.Length; i++)
{
dt.Columns.Add(entityProperties[i].Name);
}
foreach (var item in list)
{
if (item.GetType() != entityType)
{
throw new Exception("要转换集合元素类型不一致!");
}
//创建一个用于放所有属性值的数组
object[] entityValues = new object[entityProperties.Length];
for (int i = 0; i < entityProperties.Length; i++)
{
entityValues[i] = entityProperties[i].GetValue(item, null);
}
dt.Rows.Add(entityValues);
}
return dt;
}
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网