List转DataTable代码
楼主昨天遇到需要转换的问题,某度了一下,下面贴上代码。主要是反射原理。
代码:
/// <summary>
/// 将list 转换 DataTable
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="list">list集合</param>
/// <returns></returns>
public static DataTable ToDataTable<T>(List<T> list)
{
DataTable result = new DataTable();
if (list.Count > 0)
{
//用PropertyInfo获取list的公共属性
PropertyInfo[] propertys = list.GetType().GetProperties();
//遍历
foreach (PropertyInfo pi in propertys)
{
//给DataTable附上列名
result.Columns.Add(pi.Name, pi.PropertyType);
}
for (int i = 0; i < list.Count; i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in propertys)
{
//声明一个ArrayList集合,将list中的值给ArrayList,长度不明确给NULL
object obj = pi.GetValue(list, null);
tempList.Add(obj);
}
object[] array = tempList.ToArray();
//将数组获取的值给DataTable,array为值的集合,true为添加新行
result.LoadDataRow(array, true);
}
}
return result;
}
真的再次发现,如果不设置回复可见,还真没人回复 顶个.... 为了你的注释.....再顶个 飞/可爱朋 发表于 2014-4-19 02:08
为了你的注释.....再顶个
以后保证都写注释 {:3_44:} ibcadmin 发表于 2014-4-19 10:10
以后保证都写注释
:lol注释不仅方便别个,也更是方便自己........你都不带头写好注释,让我们肿么活 飞/可爱朋 发表于 2014-4-19 02:11
注释不仅方便别个,也更是方便自己........你都不带头写好注释,让我们肿么活
好吧 我知道错了{:3_58:} 以后保证写 《C#程序的157个建议》里不让写注释;P HelloWorld 发表于 2014-4-24 05:59
《C#程序的157个建议》里不让写注释
为撒不让写。。
页:
[1]