c# DataTable 帮助类

public class DataTableHelper

{

#region DataTable转IList

/// <summary>

/// DataTable转IList集合

/// </summary>

/// <typeparam name="T"></typeparam>

/// <param name="dataTable"></param>

/// <returns></returns>

public static IList<T> ToList<T>(DataTable dataTable) where T : class, new()

{

IList<T> list = new List<T>();// 定义集合

if (dataTable != null)

{

foreach (DataRow dr in dataTable.Rows)

{

T t = new T();

PropertyInfo[] propertys = t.GetType().GetProperties();// 获得此模型的公共属性

foreach (PropertyInfo pi in propertys)

{

var name = pi.Name;

if (dataTable.Columns.Contains(name))

{

if (!pi.CanWrite) continue;

object value = dr[name];

if (value != DBNull.Value)

{

pi.SetValue(t, value, null);

}

}

}

list.Add(t);

}

}

return list;

}

#endregion

}

相关推荐
旅途中的宽~16 分钟前
【Python】pip install -v e .命令不想自动更新torch版本
开发语言·python·pip
lly20240618 分钟前
Vue3 指令详解
开发语言
_OP_CHEN32 分钟前
【从零开始的Qt开发指南】(二十三)Qt 界面优化之 QSS 实战指南:从入门到精通,让你的界面颜值飙升!
开发语言·c++·qt·前端开发·界面美化·qss·客户端开发
e***985735 分钟前
Java性能优化实战:从原理到案例
java·开发语言·性能优化
HellowAmy37 分钟前
我的C++规范 - 跳跃的对象
开发语言·c++·代码规范
lph00938 分钟前
QtMqtt 的编译与QT环境加载配置
开发语言·qt
崇山峻岭之间1 小时前
Matlab学习记录35
开发语言·学习·matlab
DowneyJoy1 小时前
【多媒体交互】透明无边框窗口
unity·c#·.net·交互
CreasyChan1 小时前
Unity GC实战优化总结
unity·c#
玩泥巴的1 小时前
深入理解飞书 Webhook 签名验证:一次踩坑到填坑的完整记录
c#·.net·飞书