没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
扩展方法(1) DataTable 和List 相互转换 作者:不详 来源:IT学习在线 发布时间:2009年09月24日 收藏本页 减小字体 增大字体
最近自从公司的开发环境改了. 从VS2003 改到VS2008 后 用了C# 3.0 的新东西 自己积累的方法就慢慢的多起来了.
由于经常使用以前经常DataTable 现在都使用ListT 就此需要经常转换.. 用的多了 自然需要写个简单的方法来实现互相转换
由于C#3.0出现了扩展方法 我们可以通过这样一个特性来简化我们的开发.
DataTable 转换为ListT 的我们可以通过扩展DataTable来简化
public static class DataTableExtensions
{
/// summary
/// DataTable 转换为List 集合
/// /summary
/// typeparam name=TResult类型/typeparam
/// param name=dtDataTable/param
/// returns/returns
public static ListTResult ToListTResult(this DataTable dt) where TResult : class,new()
{
//创建一个属性的列表
ListPropertyInfo prlist = new ListPropertyInfo();
//获取TResult的类型实例 反射的入口
Type t = typeof(TResult);
//获得TResult 的所有的Public 属性 并找出TResult属性和DataTable的列名称相同的属性(PropertyInfo) 并加入到属性列表
Array.ForEachPropertyInfo(t.GetProperties(), p = { if (dt.Columns.IndexOf(p.Name) != -1) prlist.Add(p); });
//创建返回的集合
ListTResult oblist = new ListTResult();
foreach (DataRow row in dt.Rows)
最近自从公司的开发环境改了. 从VS2003 改到VS2008 后 用了C# 3.0 的新东西 自己积累的方法就慢慢的多起来了.
由于经常使用以前经常DataTable 现在都使用ListT 就此需要经常转换.. 用的多了 自然需要写个简单的方法来实现互相转换
由于C#3.0出现了扩展方法 我们可以通过这样一个特性来简化我们的开发.
DataTable 转换为ListT 的我们可以通过扩展DataTable来简化
public static class DataTableExtensions
{
/// summary
/// DataTable 转换为List 集合
/// /summary
/// typeparam name=TResult类型/typeparam
/// param name=dtDataTable/param
/// returns/returns
public static ListTResult ToListTResult(this DataTable dt) where TResult : class,new()
{
//创建一个属性的列表
ListPropertyInfo prlist = new ListPropertyInfo();
//获取TResult的类型实例 反射的入口
Type t = typeof(TResult);
//获得TResult 的所有的Public 属性 并找出TResult属性和DataTable的列名称相同的属性(PropertyInfo) 并加入到属性列表
Array.ForEachPropertyInfo(t.GetProperties(), p = { if (dt.Columns.IndexOf(p.Name) != -1) prlist.Add(p); });
//创建返回的集合
ListTResult oblist = new ListTResult();
foreach (DataRow row in dt.Rows)
资源评论
- 攻城必备2014-08-04值得学习,谢谢分享
ymk
- 粉丝: 6
- 资源: 42
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功