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

}

相关推荐
历程里程碑24 分钟前
hot 206
java·开发语言·数据结构·c++·python·算法·排序算法
烛阴26 分钟前
C# 正则表达式(3):分组与捕获——从子串提取到命名分组
前端·正则表达式·c#
csbysj202036 分钟前
菜单(Menu)
开发语言
yong99901 小时前
基于MATLAB的随机振动界面设计与功率谱密度分析实现
开发语言·matlab
超级种码1 小时前
Java:JavaAgent技术(java.instrument和java.attach)
java·开发语言·python
天天向上10241 小时前
go 配置热更新
开发语言·后端·golang
晨晖22 小时前
顺序查找:c语言
c语言·开发语言·算法
wadesir2 小时前
C++非对称加密实战指南(从零开始掌握RSA加密算法)
开发语言·c++
a程序小傲3 小时前
阿里Java面试被问:.Java 8中Stream API的常用操作和性能考量
开发语言·windows·python
爱装代码的小瓶子3 小时前
【c++进阶】从C++98到C++11的奇妙旅程(故事科普版)
开发语言·c++