随笔 - 493  文章 - 0  评论 - 97  阅读 - 239万

DataTable 转换为List 集合

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/// <summary>
/// DataTable转List<T>
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dt"></param>
/// <returns></returns>
public static List<T> toList<T>(this DataTable dt) where T: class, new()
{
    var prList = new List<PropertyInfo>();
    var t = typeof(T);
 
    Array.ForEach(t.GetProperties(), p =>
    {
        if(dt.Columns.IndexOf(p.Name) != -1)
        {
            prList.Add(p);
        }
    });
 
    var ret = new List<T>();
    foreach(DataRow dr in dt.Rows)
    {
        var item = new T();
        prList.ForEach(p =>
        {
            if (dr[p.Name] != DBNull.Value)
            {
                p.SetValue(item, dr[p.Name], null);
            }
        });
 
        ret.Add(item);
    }
 
    return ret;
}

  以上为扩展函数,怎么调用相信你懂的!!

posted on   清清飞扬  阅读(123)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示