private static List<T> ConvertToList<T>(DataTable dt)
  where T : new()
  {
   T t1;
   Type type = typeof(T);
   List<T> list = new List<T>();
   PropertyInfo[] propertys = type.GetProperties();
   string name = string.Empty;
   foreach (DataRow dr in dt.Rows)
   {
    T t2 = default(T);
    if (t2 == null)
    {
     t1 = Activator.CreateInstance<T>();
    }
    else
    {
     t2 = default(T);
     t1 = t2;
    }
    T t = t1;
    PropertyInfo[] propertyInfoArray = propertys;
    for (int i = 0; i < (int)propertyInfoArray.Length; i++)
    {
     PropertyInfo pi = propertyInfoArray[i];
     name = pi.Name;
     if (dt.Columns.Contains(name))
     {
      if (!pi.CanWrite)
      {
                            continue;
      }
      object value = SqlHelper.ToCSharpValue(dr[name]);
      if (null != value)
      {
       pi.SetValue(t, value, null);
      }
     }
    
    }
    list.Add(t);
   }
   return list;
  }

posted on 2017-03-26 17:39  张小帅  阅读(250)  评论(0编辑  收藏  举报