zoukankan      html  css  js  c++  java
  • .NET C# 泛型集合转DataTable

    1.功能类

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;

    namespace Infrastructure
    {
        public static class EnumerableExtensions
        {
            public static DataTable CopyToDataTable<T>(this IEnumerable<T> array)
            {
                DataTable result = new DataTable();
                foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(typeof (T)))
                {
                    if (pd.PropertyType.IsGenericType && pd.PropertyType.GetGenericTypeDefinition().Equals(typeof (Nullable<>)))
                        result.Columns.Add(pd.Name,Nullable.GetUnderlyingType(pd.PropertyType));
                    else
                        result.Columns.Add(pd.Name, pd.PropertyType);
                }
                foreach (T item in array)
                {
                    DataRow row = result.NewRow();
                    foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(typeof(T)))
                        row[pd.Name] = pd.GetValue(item) ?? DBNull.Value;
                    result.Rows.Add(row);
                }
                return result;
            }
        }
    }
    2.调用方式

    List<T> items = new List<T>();

    xxx //为items赋值

    DataTable dataTable = EnumerableExtensions.CopyToDataTable(items);//调用方法

  • 相关阅读:
    macOS10.9+xcode6编译ffmpeg2.4.2 for ios
    [think in java]第12章 通过异常处理错误
    机房合作感受
    LeetCode 210. Course Schedule II(拓扑排序-求有向图中是否存在环)
    Java继承
    jQuery学习笔记之DOM操作、事件绑定(2)
    intellij IDEA常见操作
    log4j.properties配置详解
    jQuery学习笔记之概念(1)
    VC常用代码之创建进程
  • 原文地址:https://www.cnblogs.com/jeff151013/p/11739359.html
Copyright © 2011-2022 走看看