利用泛型实现DataTable转List通用类
/// <summary>
/// 根据实体属性自动序列化
/// </summary>
/// <typeparam name="T">数据泛类型</typeparam>
/// <param name="dt">datatable</param>
/// <returns></returns>
public static List<T> ToList<T>(this DataTable dt) where T : new()
{
if (dt == null)
{
return new List<T>();
}
Type type = typeof(T);
List<T> list = new List<T>();
string tempName = string.Empty;
foreach (DataRow row in dt.Rows)
{
PropertyInfo[] pArray = type.GetProperties();
T entity = new T();
foreach (PropertyInfo p in pArray)
{
tempName = p.Name;
if (!p.CanWrite) continue;
object value = row[tempName];
if (value != DBNull.Value) p.SetValue(entity, value, null);
}
list.Add(entity);
}
return list;
}