1:model转datatable
public static DataTable ListToDataTable<T>(List<T> entitys)
{
if (entitys == null || entitys.Count < 1)
{
throw new ArgumentException("需转换的集合为空");
}
Type entityType = entitys[0].GetType();
PropertyInfo[] entityProperties = entityType.GetProperties();
DataTable dt = new DataTable();
foreach (var prop in entityProperties)
{
if (prop.CanRead) // 确保属性可读
{
dt.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
}
}
foreach (T entity in entitys) // 使用泛型类型参数以避免装箱
{
if (entity.GetType() != entityType)
{
throw new ArgumentException("要转换的集合元素类型不一致");
}
object[] entityValues = new object[entityProperties.Length];
for (int i = 0; i < entityProperties.Length; i++)