将DataTable转成List集合的方法

 

复制代码
 1 public static List<T> TableToListModel<T>(DataTable dt) where T : new()
 2         {
 3             List<T> res = new List<T>();
 4             // 获得此模型的类型   
 5             Type type = typeof(T);
 6             string tempName = "";
 7             foreach (DataRow dr in dt.Rows)
 8             {
 9                 T t = new();
10                 // 获得此模型的公共属性      
11                 PropertyInfo[] propertys = t.GetType().GetProperties();
12                 foreach (PropertyInfo pi in propertys)
13                 {
14                     //针对特性的
15                     if (pi.CustomAttributes.FirstOrDefault() != null)
16                         tempName = pi.CustomAttributes.FirstOrDefault().NamedArguments.FirstOrDefault().TypedValue.Value.ToString();
17                     else
18                         tempName = pi.Name;// 检查DataTable是否包含此列  .Name;
19                     if (dt.Columns.Contains(tempName))
20                     {
21                         // 判断此属性是否有Setter      
22                         if (!pi.CanWrite) continue;
23                         object value = dr[tempName];
24                         if (value != DBNull.Value)
25                             pi.SetValue(t, value, null);
26                     }
27                 }
28                 res.Add(t);
29             }
30             return res;
31         }
复制代码

 

posted @   进击的黑大帅  阅读(755)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示