The method below converts an array of objects to a DataTable object in C#.

时间:2022-09-24 11:31:01

http://www.c-sharpcorner.com/blogs/dynamic-objects-conveting-into-data-table-in-c-sharp1

public static DataTable GetDataTableFromObjects(object[] objects)
{
if (objects != null && objects.Length > )
{
Type t = objects[].GetType();
DataTable dt = new DataTable(t.Name);
foreach (PropertyInfo pi in t.GetProperties())
{
dt.Columns.Add(new DataColumn(pi.Name));
}
foreach (var o in objects)
{
DataRow dr = dt.NewRow();
foreach (DataColumn dc in dt.Columns)
{
dr[dc.ColumnName] = o.GetType().GetProperty(dc.ColumnName).GetValue(o, null);
}
dt.Rows.Add(dr);
}
return dt;
}
return null;
}
        /// <summary>
/// ToDataTable
/// </summary>
/// <typeparam name="T">实体</typeparam>
/// <param name="items">实体集</param>
/// <returns></returns>
public static DataTable ToDataTable<T>(this IEnumerable<T> items)
{
var tb = new DataTable(typeof(T).Name); PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (var prop in props)
{
tb.Columns.Add(prop.Name, prop.PropertyType);
} foreach (var item in items)
{
var values = new object[props.Length];
for (var i = ; i < props.Length; i++)
{
values[i] = props[i].GetValue(item, null);
} tb.Rows.Add(values);
} return tb;
}

The method below converts an array of objects to a DataTable object in C#.的更多相关文章

  1. Array of Objects

    You should be comfortable with the content in the modules up to and including the module "Array ...

  2. Caused by&colon; java&period;lang&period;NullPointerException&colon; Attempt to invoke virtual method &&num;39&semi;void android&period;app&period;ActionBar&period;setDisplayShowHomeEnabled&lpar;boolean&rpar;&&num;39&semi; on a null object reference

    /********************************************************************************* * Caused by: java ...

  3. Method not found &colon; Void System&period;Data&period;Objects&period;ObjectContextOptions&period;set&lowbar;UseConsistentNullReferenceBehavior&lpar;Boolean&rpar;

    找不到方法:“Void System.Data.Objects.ObjectContextOptions.set_UseConsistentNullReferenceBehavior(Boolean) ...

  4. How to use Jackson to deserialise an array of objects

    first create a mapper : import com.fasterxml.jackson.databind.ObjectMapper; ObjectMapper mapper = ne ...

  5. Why does typeof array with objects return &OpenCurlyDoubleQuote;Object” and not &OpenCurlyDoubleQuote;Array”&quest;

    https://*.com/questions/4775722/check-if-object-is-an-array One of the weird behaviour a ...

  6. Array、Set、Map、Object学习总结

    Array和Set对比 都是一个存储多值的容器,两者可以互相转换,但是在使用场景上有区别.如下: Array的indexOf方法比Set的has方法效率低下 Set不含有重复值(可以利用这个特性实现对 ...

  7. java方法句柄-----5&period;Method Handles in Java

    Method Handles in Java 目录 Method Handles in Java 1.介绍 2.什么是MethodHandle 3. Method Handles vs Reflect ...

  8. MVC---Case 1

    <!DOCTYPE html> <html lang="en"> <head> <title>Backbone.js, Requir ...

  9. vue源码逐行注释分析&plus;40多m的vue源码程序流程图思维导图 (diff部分待后续更新)

    vue源码业余时间差不多看了一年,以前在网上找帖子,发现很多帖子很零散,都是一部分一部分说,断章的很多,所以自己下定决定一行行看,经过自己坚持与努力,现在基本看完了,差ddf那部分,因为考虑到自己要换 ...

随机推荐

  1. GPS定位为什么要转换处理?高德地图和百度地图坐标处理有什么不一样?

    GPS定位为什么要转换处理?高德地图和百度地图坐标处理有什么不一样? 先了解一下 高德地图 采用: GCJ-02 (不可逆) 百度百科: http://baike.baidu.com/link?url ...

  2. 关于设置SQLPLUS提示符样式的方法----登陆配置文件,动态加载提示符

    工作中用到 sqlplus mdsoss/mdsoss, 所以来了解一下sqlplus (C shell .cshrc文件里中alisa) 关于设置SQLPLUS提示符样式的方法 12638阅读 1评 ...

  3. html简单框架网页制作

    先把框架分结构 top顶端 <img src="title.jpg"/> left左侧 <body bgcolor="pink"> &l ...

  4. span标签之间的空隙

    出现的问题: 在html中,当有两个以及两个以上的span标签并列的时候,如果任意两个span之间换行书写的话,那么他们在页面上展现的时候往往会有空隙 解决的办法有两个: 1.将两个span标签写在同 ...

  5. ExecuteNonQuary接收存储过程的输出类型的变量的值

    1.设置所调用的存储过程需要的参数 public decimal CreateOrder(string orderId, int userId, string address) { SqlParame ...

  6. javascript与java编码互转

    java:java.net.URLEncoder.encode(s, "UTF-8");java.net.URLDecoder.decode(chezhanInEn,"U ...

  7. 在数组a中,a&lbrack;i&rsqb;&plus;a&lbrack;j&rsqb;&equals;a&lbrack;k&rsqb;,求a&lbrack;k&rsqb;的最大值,a&lbrack;k&rsqb;max——猎八哥fly

    在数组a中,a[i]+a[j]=a[k],求a[k]的最大值,a[k]max. 思路:将a中的数组两两相加,组成一个新的数组.并将新的数组和a数组进行sort排序.然后将a数组从大到小与新数组比较,如 ...

  8. 27&period;给input边框和背景颜色设置全透明

    给input边框和背景颜色设置全透明,但是里面的字不会消失 1.让背景颜色变透明(二选一) background-color:rgba(0,0,0,0); background:rgba(0,0,0, ...

  9. 牛客网——B-栈和排序

    链接:https://www.nowcoder.com/acm/contest/58/B来源:牛客网 题目描述 给你一个1->n的排列和一个栈,入栈顺序给定 你要在不打乱入栈顺序的情况下,对数组 ...

  10. 使用 AVA 做自动化测试

    http://colabug.com/710736.html