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

}

相关推荐
鲨辣椒1008612 分钟前
Linux软件编程基石——基础指令使用
linux·windows·microsoft
数智工坊13 分钟前
【数据结构-栈、队列、数组】3.3栈在括号匹配-表达式求值上
java·开发语言·数据结构
lsx20240615 分钟前
Bootstrap 插件概览
开发语言
毕设源码-钟学长16 分钟前
【开题答辩全过程】以 基于PHP的动漫社区的设计与实现为例,包含答辩的问题和答案
开发语言·php
狂奔蜗牛飙车19 分钟前
Python学习之路-Python3 迭代器与生成器学习详解
开发语言·python·学习·#python学习笔记·python迭代器生成器
云小逸21 分钟前
【Nmap 源码学习】深度解析:main.cc 入口函数详解
网络·windows·学习·nmap
xqqxqxxq23 分钟前
洛谷算法1-3 暴力枚举(NOIP经典真题解析)java(持续更新)
java·开发语言·算法
爱上妖精的尾巴24 分钟前
8-5 WPS JS宏 match、search、replace、split支持正则表达式的字符串函数
开发语言·前端·javascript·wps·jsa
阿猿收手吧!24 分钟前
【C++】inline变量:全局共享新利器
开发语言·c++
沐知全栈开发24 分钟前
Python3 列表详解
开发语言