csharp C#将List转换为DataTable

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp C#将List转换为DataTable相关的知识,希望对你有一定的参考价值。

    public static class DataTableExtensions
    {
        public static DataTable ToDataTable<T>(this List<T> items)
        {
            DataTable dataTable = new DataTable(typeof(T).Name);

            //Get all the properties
            PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
            foreach (PropertyInfo prop in Props)
            {
                //Defining type of data column gives proper data table
                var type = (prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>) ? Nullable.GetUnderlyingType(prop.PropertyType) : prop.PropertyType);
                //Setting column names as Property names
                dataTable.Columns.Add(prop.Name, type);
            }
            foreach (T item in items)
            {
                var values = new object[Props.Length];
                for (int i = 0; i < Props.Length; i++)
                {
                    //inserting property values to datatable rows
                    values[i] = Props[i].GetValue(item, null);
                }
                dataTable.Rows.Add(values);
            }
            //put a breakpoint here and check datatable
            return dataTable;
        }
    }

以上是关于csharp C#将List转换为DataTable的主要内容,如果未能解决你的问题,请参考以下文章

csharp C#将图像转换为jpeg

csharp NHibernate QueryOver.List扩展支持转换为匿名类型

csharp 简单的C#扩展方法,将驼峰大小写字符串转换为下划线表示法而不使用任何正则表达式

csharp 在C#中将CurrentDateTime转换为Epoch

如何将 C 数组转换为 std::initializer_list?

将字符串转换为列表 - str2list('[abc]') 应该返回 ['a','b','c']