打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C# DataTable 转 List(大家进来讨论讨论)

C# DataTable 转 List 方法,网上有好多,之前也收集了,感觉这个也不错,重要是自己要领会这里面的代码含义。

接不来我就把代码贴出来分享一下,大家觉得如果不好,请留言我,我来改进。

using System;using System.Collections.Generic;using System.Data;using System.Reflection;namespace jdrz.HumanIdentify{    public class Helper    {        /// <summary>        /// DataTable 转换为List 集合        /// </summary>        /// <typeparam name="TResult">类型</typeparam>        /// <param name="dt">DataTable</param>        /// <returns></returns>        public static List<TResult> ToList<TResult>(DataTable dt) where TResult : class, new()        {            //创建一个属性的列表            var prlist = new List<PropertyInfo>();            //获取TResult的类型实例  反射的入口            var t = typeof(TResult);            //获得TResult 的所有的Public 属性 并找出TResult属性和DataTable的列名称相同的属性(PropertyInfo) 并加入到属性列表             Array.ForEach(t.GetProperties(), p => { if (dt.Columns.IndexOf(p.Name) != -1) prlist.Add(p); });            //创建返回的集合            var oblist = new List<TResult>();            foreach (DataRow row in dt.Rows)            {                //创建TResult的实例                var ob = new TResult();                //找到对应的数据  并赋值                prlist.ForEach(p => { if (row[p.Name] != DBNull.Value) p.SetValue(ob, row[p.Name], null); });                //放入到返回的集合中.                oblist.Add(ob);            }            return oblist;        }    }}

总结一下:

其实我想重写下Ado.net ,因为之前我们公司用的都是直接dataset to datatable ,现在发现 to list更方便(不知道大家有没有这种感觉),

我自己用的是Nhibernate,所以基于公司内部的话,我想再写个Ado.net 转换数据的dll,最后我想说的是,大家在公司里都是用什么开发的?

ado.net?nhibernate?Elinq?entityframework?希望大家一起讨论讨论!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#中IEnumerable<T>.Select()、SelectMany()的简单使用
CDTray, 打开,关闭光驱的系统托盘程序
linq 延迟执行 以及查询的复用(转)
C# DataTable 和List之间相互转换的方法
datatable与list的互相转换
DataTable转换成IList
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服