马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

List转DataTable代码

  [复制链接]
查看7119 | 回复8 | 2014-4-19 09:44:41 | 显示全部楼层 |阅读模式
楼主昨天遇到需要转换的问题,某度了一下,下面贴上代码。
主要是反射原理

代码:


[C#] 纯文本查看 复制代码
  /// <summary>
        /// 将list 转换 DataTable
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="list">list集合</param>
        /// <returns></returns>
        public static DataTable ToDataTable<T>(List<T> list)
        {
            DataTable result = new DataTable();
            if (list.Count > 0)
            {
                //用PropertyInfo获取list的公共属性
PropertyInfo[] propertys = list[0].GetType().GetProperties();
                //遍历
foreach (PropertyInfo pi in propertys)
                {
                    //给DataTable附上列名
result.Columns.Add(pi.Name, pi.PropertyType);
                }

                for (int i = 0; i < list.Count; i++)
                {
                    ArrayList tempList = new ArrayList();
                    foreach (PropertyInfo pi in propertys)
                    {
                        //声明一个ArrayList集合,将list中的值给ArrayList,长度不明确给NULL
                        object obj = pi.GetValue(list[i], null);
                        tempList.Add(obj);
                    }
                    object[] array = tempList.ToArray();
                    //将数组获取的值给DataTable,array为值的集合,true为添加新行
result.LoadDataRow(array, true);
                }
            }
            return result;
        }






C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
ibcadmin | 2014-4-19 09:49:58 | 显示全部楼层
真的再次发现,  如果不设置回复可见,还真没人回复
飞/可爱朋 | 2014-4-19 10:08:02 | 显示全部楼层
顶个....
飞/可爱朋 | 2014-4-19 10:08:18 | 显示全部楼层
为了你的注释.....再顶个
ibcadmin | 2014-4-19 10:10:00 | 显示全部楼层
飞/可爱朋 发表于 2014-4-19 02:08
为了你的注释.....再顶个

以后保证都写注释
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
飞/可爱朋 | 2014-4-19 10:11:58 | 显示全部楼层
ibcadmin 发表于 2014-4-19 10:10
以后保证都写注释

注释不仅方便别个,也更是方便自己........你都不带头写好注释,让我们肿么活
ibcadmin | 2014-4-19 10:26:39 | 显示全部楼层
飞/可爱朋 发表于 2014-4-19 02:11
注释不仅方便别个,也更是方便自己........你都不带头写好注释,让我们肿么活

好吧 我知道错了    以后保证写
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
HelloWorld | 2014-4-24 13:59:46 | 显示全部楼层
《C#程序的157个建议》里不让写注释
ibcadmin | 2014-4-24 16:33:49 | 显示全部楼层
HelloWorld 发表于 2014-4-24 05:59
《C#程序的157个建议》里不让写注释

为撒不让写。。
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则