C#将List<T>转化为DataTable
using System;
using System.Collections.Generic;
using System.Data;
using System.Reflection;
using System.Text; namespace ConsoleApplication1
{
static class ConvertDatatable
{
/// <summary>
/// 扩展方法:将List<T>转化为DataTable
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <returns></returns>
public static DataTable ToDataTable<T>(this List<T> list)
{
DataTable datatable = new DataTable();
PropertyInfo[] propInfo = typeof(T).GetProperties(BindingFlags.Public|BindingFlags.Instance);
foreach (var item in propInfo)
{
datatable.Columns.Add(item.Name);
}
foreach (T item in list)
{
var values=new object[propInfo.Length];
for (int i = ; i < propInfo.Length; i++)
{
values[i] = propInfo[i].GetValue(item, null);
}
datatable.Rows.Add(values);
}
return datatable;
}
} class Student
{
public int? id { get; set; }
public string name { get; set; }
public int? age { get; set; }
public string address { get; set; }
}
}
调用:
class Program
{
static void Main(string[] args)
{
List<Student> listStu = new List<Student>()
{
new Student(){id=,name="张三",age=,address="东十路1号"},
new Student(){id=,name="李四",age=}
}; DataTable dt = listStu.ToDataTable<Student>(); foreach (DataRow item in dt.Rows)
{
Console.Write(item["id"].ToString());
Console.Write(item["name"].ToString());
Console.Write(item["age"].ToString());
Console.Write(item["address"].ToString());
Console.WriteLine("\r\n");
}
Console.Read();
}
}
C#将List<T>转化为DataTable的更多相关文章
- C# 将list<>泛型集合 转化为 DataTable
使用案例:将页面easy ui 中datagrid表格中的数据,存成json字符串, 通过ajax和ashx传入C#将string类型的json字符串解析成list<>泛型集合, 由于业务 ...
- 泛型集合转化为DataTable
public class DataTableUtil { /// <summary> /// 泛型集合转化为dataTable /// </summary> /// <t ...
- 怎么使用Aspose.Cells读取excel 转化为Datatable
说明:vs2012 asp.net mvc4 c# 使用Aspose.Cells 读取Excel 转化为Datatable 1.HTML前端代码 <%@ Page Language=" ...
- Xml转化为DataTable
/// <summary> /// XML转换为DataTable /// </summary> /// <param name="fileName" ...
- DataSet转化为DataTable
. DataTable dt = ds.Tables[]; . DataTable dt = dao.FillTables("GetOptions_DKI_City_HCPName" ...
- c# 多维数组、交错数组(转化为DataTable)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- MVC 之集合类转化为DataTable
private static DataTable ToDataTableTow(IList list) { DataTable result = new DataTable(); if (list.C ...
- 使用WCF传输DataTable:DataTable和Xml格式的字符串相互转换(C#)
背景:项目中要用到客户端向服务端传数据,使用WCF,绑定webHttpBinding,做了一个小例子. 业务逻辑简介:客户端在a表中添加了几条数据,从SQL Server数据库直接取出新添加的数据(D ...
- WPF中Grid绑定DataTable数据。
1.首先引用DocumentFormat.OpenXml.dll 2.然后新建一个OpenExcelHelper类,将Excel转化为Datatable. /// <summary> ...
随机推荐
- rest_framework 之视图
1. 继承ModelSerilizer,直接指定要序列化的表模型 MySerializers.py from app import models # 继承ModelSerilizer,直接指定要序列化 ...
- js获取谷歌浏览器版本
根据浏览器的useragent获取浏览器信息 // 获取谷歌浏览器版本 function getChromeVersion() { var arr = navigator.userAgent.spli ...
- Swiper.js使用及API介绍
Swiper.js详细使用教程http://www.swiper.com.cn/api/start/2014/1218/140.html
- scp ssh-key连接原理
scp ssh-key连接原理 如何关闭位置解析 vim手动打开ssh的配置文件修改81行和122行,位置解析需要双方都关闭 注意重点部分 ssh特别提醒 22端口信息 连接 ...
- @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的作用
在学习boot 项目的时候 ,发现在启动类中有一个这个的注解 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) ...
- ios 中pickerView城市选择和UIDatePicker生日选择
代码详见压缩包
- Sql Server索引重建
公司线上数据有几千万数据,有时候索引碎片会导致索引达不到我们的预期查询效率,这个时候将索引重建将会提升一定效率,不过重建的时候一定得晚上用户少的时候,索引重建需要一定时间. 直接贴自动重建索引脚本吧 ...
- ASP.NET之使用Ajax实现页面异步刷新(无需刷新整个页面)
目前在使用ASP.NET技术做毕业设计,但是关于网页中的各种配置我到现在还不是很清楚,正在努力进化... 一般情况下,新建网页页面的话,应该为.aspx后缀的文件,建好之后对应一个同名的.cs文件,属 ...
- php网站速度性能优化(转)
一个网站的访问打开速度至关重要,特别是首页的打开加载过慢是致命性的,本文介绍关于php网站性能优化方面的实战案例:淘宝首页加载速度优化实践 .想必很多人都已经看到了新版的淘宝首页,它与以往不太一样,这 ...
- js补零方法
方法如下: function getZero(num, index) { if((parseInt(num) != 0) && (typeof num == "undefin ...