首页 新闻 会员 周边

datatable转list

0
[待解决问题]

想问下大佬,这样的代码有木有什么地方可以优化一下的?

public static string GetDescription(this PropertyInfo propertyInfo)
        {
          var Attributes=propertyInfo.GetCustomAttributes(false);
            if (Attributes.Count() > 0)
                return ((DescriptionAttribute)Attributes.First()).Description;
            else
                return string.Empty;
        }

  public static IList<T> ConvertToList<T>(this DataTable dt) where T:new ()
    {
        IList<T> list = new List<T>();
        string tempName = "";
        T t = Activator.CreateInstance<T>();
        PropertyInfo[] propertys = t.GetType().GetProperties();
        foreach (DataRow row in dt.Rows)
        {
            t = Activator.CreateInstance<T>();
            foreach(var item in propertys)
            {
                tempName = item.GetDescription();
                if(dt.Columns.Contains(tempName))
                {
                    if (!item.CanWrite)
                        continue;
                    var value = row[tempName];
                    if (value != DBNull.Value)
                    {
                        if (item.PropertyType.IsEnum)
                        {
                            var obj = Enum.Parse(item.PropertyType, value as string);
                            item.SetValue(t, obj, null);
                        }
                        else
                            item.SetValue(t, value, null);

                    }
                }
            }
            list.Add(t);
        }
        return list;
    }

灬丶的主页 灬丶 | 初学一级 | 园豆:2
提问于:2018-03-27 14:21
< >
分享
所有回答(1)
0

找个orm框架吧.用起来比较方便.

吴瑞祥 | 园豆:29449 (高人七级) | 2018-03-27 16:27

我们这里只是用导入的时候需要把datatable转list

支持(0) 反对(0) 灬丶 | 园豆:2 (初学一级) | 2018-03-27 17:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册