DataTable转List

 public class ModelConvertHelper<T> where T : new()  // 此处一定要加上new()
        {

            public static List<T> ConvertToModel(DataTable dt)
            {

                List<T> ts = new List<T>();// 定义集合
                Type type = typeof(T); // 获得此模型的类型
                string tempName = "";
                foreach (DataRow dr in dt.Rows)
                {
                    T t = new T();
                    PropertyInfo[] propertys = t.GetType().GetProperties();// 获得此模型的公共属性
                    foreach (PropertyInfo pi in propertys)
                    {
                        tempName = pi.Name;
                        if (dt.Columns.Contains(tempName))
                        {
                            if (!pi.CanWrite) continue;
                            object value = dr[tempName];
                            if (value != DBNull.Value)
                                pi.SetValue(t, value, null);
                        }
                    }
                    ts.Add(t);
                }
                return ts;
            }
        }
调用方法为: List<NewsInfo> list = ModelConvertHelper<NewsInfo>.ConvertToModel(da);

  

posted @ 2016-04-21 17:47  装饰的梦  阅读(136)  评论(0编辑  收藏  举报