DataTable 转化为List
2015-08-17 20:32
169 查看
方法1
// where T:class,new () 这说明T是一个类型,下面可以定义 T mydata = new T();
public static List<T> DataTableToList<T>(DataTable dt) where T:class,new ()
{
List<T> list = new List<T>();
foreach (DataRow row in dt.Rows)
{
T mydata = new T();
PropertyInfo[] info = mydata.GetType().GetProperties();
string name = string.Empty;
foreach (var pro in info)
{
name = pro.Name;
if (dt.Columns.Contains(name))
{
pro.SetValue(mydata, row[name], null);
}
}
list.Add(mydata);
}
return list;
}
方法2
private List<T> DataTableToList<T>(T obj, DataTable dt)
{
List<T> list = new List<T>();
foreach (DataRow row in dt.Rows)
{
Type t = typeof(T);
PropertyInfo[] info = t.GetProperties();
foreach (DataColumn col in dt.Columns)
{
info.Where(s => s.Name.ToLower() == col.ColumnName.ToLower())
.Select(s => s).First().SetValue(obj, row[col.ColumnName].ToString(), null);
}
list.Add(obj);
}
return list;
}
public class Mydata
{
private string column1;
public string Column1
{
get { return column1; }
set { column1 = value; }
}
private string column2;
public string Column2
{
get { return column2; }
set { column2 = value; }
}
private string column3;
public string Column3
{
get { return column3; }
set { column3 = value; }
}
}
方法1
// where T:class,new () 这说明T是一个类型,下面可以定义 T mydata = new T();
public static List<T> DataTableToList<T>(DataTable dt) where T:class,new ()
{
List<T> list = new List<T>();
foreach (DataRow row in dt.Rows)
{
T mydata = new T();
PropertyInfo[] info = mydata.GetType().GetProperties();
string name = string.Empty;
foreach (var pro in info)
{
name = pro.Name;
if (dt.Columns.Contains(name))
{
pro.SetValue(mydata, row[name], null);
}
}
list.Add(mydata);
}
return list;
}
方法2
private List<T> DataTableToList<T>(T obj, DataTable dt)
{
List<T> list = new List<T>();
foreach (DataRow row in dt.Rows)
{
Type t = typeof(T);
PropertyInfo[] info = t.GetProperties();
foreach (DataColumn col in dt.Columns)
{
info.Where(s => s.Name.ToLower() == col.ColumnName.ToLower())
.Select(s => s).First().SetValue(obj, row[col.ColumnName].ToString(), null);
}
list.Add(obj);
}
return list;
}
public class Mydata
{
private string column1;
public string Column1
{
get { return column1; }
set { column1 = value; }
}
private string column2;
public string Column2
{
get { return column2; }
set { column2 = value; }
}
private string column3;
public string Column3
{
get { return column3; }
set { column3 = value; }
}
}
相关文章推荐
- BestCoder Round #50 (div.2)
- HDOJ Matrix multiplication 4920【矩阵相乘】
- Complete uninstall on Mac, HELP!
- 2015.7.30 第五堂(补)delegate 三部曲理解之三(使用delegate)
- solaris 软件包地址
- 流动python - 写port扫描仪和各种并发尝试(多线程/多进程/gevent/futures)
- 一致性哈希算法学习及JAVA代码实现分析
- 关于mini2440按键中断的配置
- Android之——退出多个Activity
- 关于xcode 断点的设置
- [效率提升]工作中的那些命令行
- java中split以"."分割
- [cf193c]Students' Revenge解题报告
- LeetCode-Single NumberI II III
- hdu 1874 畅通工程续(迪科斯彻算法)
- Android:Unable to resolve target ‘android-8’问题解决
- c# ComboBox简单用法
- 通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
- nginx log format
- 全排列算法—基于OC