将对象集合List<ReturnData>转换为DataTable

使用PropertyInfo时需要引入命名空间:System.Reflection

//创建表

DataTable dtResult = new DataTable();

//创建对象集合

List<ReturnData> retList = new ReturnData();

//获取此对象的公共属性

PropertyInfo[] propertys = typeof(ReturnData).GetProperties();

//遍历对象的所有属性并且创建列名

foreach (PropertyInfo pi in propertys)
{
  // 判断此属性是否有Getter
  if (!pi.CanRead) continue;
  dtResult.Columns.Add(pi.Name, pi.PropertyType);
}

//循环遍历对象列表,给DataTable添加数据行
foreach (var item in retList)
{
  propertys = item.GetType().GetProperties();
  DataRow newRow = dtResult.NewRow();
  foreach (PropertyInfo pi in propertys)
  {
    if (!pi.CanRead) continue;
    newRow[pi.Name] = pi.GetValue(item, null);
  }
  dtResult.Rows.Add(newRow);
}
注:本文根据https://blog.51cto.com/13492397/2083194改写,如有侵权,请及时联系。

-------------------------------------------------------------------------------------------------------------------------------------

菜鸟一枚,本文只是方便个人日后学习并使用,文中如有错误,欢迎各位大佬指点!

转载于:https://www.cnblogs.com/MonkeyDWang/p/11105919.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值