/// <summary>
/// Table转List
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public List<T> TableToList(DataTable dt)
{
var result = new List<T>();
var type = typeof(T);
foreach (DataRow row in dt.Rows)
{
PropertyInfo[] array = type.GetProperties(); //集合属性数组
var entity = Activator.CreateInstance<T>(); //新建对象实例
foreach (var p in array)
{
if (!dt.Columns.Contains(p.Name) || row[p.Name] == null || row[p.Name] == DBNull.Value)
{
continue;
}
if (p.PropertyType == typeof(DateTime) && Convert.ToDateTime(row[p.Name]) < Convert.ToDateTime("1753-01-01"))
{
continue;
}
try
{
//类型强转,将table字段类型转为集合字段类型
var obj = Convert.ChangeType(row[p.Name], p.PropertyType);
p.SetValue(entity, obj, null);
}
catch (Exception)
{
continue;
}
}
result.Add(entity);
}
return result;
}
/// Table转List
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public List<T> TableToList(DataTable dt)
{
var result = new List<T>();
var type = typeof(T);
foreach (DataRow row in dt.Rows)
{
PropertyInfo[] array = type.GetProperties(); //集合属性数组
var entity = Activator.CreateInstance<T>(); //新建对象实例
foreach (var p in array)
{
if (!dt.Columns.Contains(p.Name) || row[p.Name] == null || row[p.Name] == DBNull.Value)
{
continue;
}
if (p.PropertyType == typeof(DateTime) && Convert.ToDateTime(row[p.Name]) < Convert.ToDateTime("1753-01-01"))
{
continue;
}
try
{
//类型强转,将table字段类型转为集合字段类型
var obj = Convert.ChangeType(row[p.Name], p.PropertyType);
p.SetValue(entity, obj, null);
}
catch (Exception)
{
continue;
}
}
result.Add(entity);
}
return result;
}