using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Text;
namespace IStation.Extensions
{
///
/// IEnumerable 拓展
///
public static class EnumerableExtension
{
///
/// 转换为DataTable
///
public static DataTable ToDataTable(this IEnumerable list) where T : new()
{
DataTable dt = new DataTable();
PropertyInfo[] properties = typeof(T).GetProperties();
dt.Columns.AddRange(properties.Select(p => new DataColumn(p.Name, p.PropertyType)).ToArray());
if (list.Count() > 0)
{
for (int i = 0; i < list.Count(); i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pro in properties)
{
object obj = pro.GetValue(list.ElementAt(i), null);
tempList.Add(obj);
}
object[] array = tempList.ToArray();
dt.LoadDataRow(array, true);
}
}
return dt;
}
}
}