『QQ:1353814576』

利用泛型实现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;
}