如何将类型化的DataTable转换为实体列表?
答
的一种方法是通过自定义代码 做让想你的实体类名称为 'MyEnt'
public class MyEnt
{
public string Name {get; set;}
public string Type {get; set;}
public LoadMyEnt(object [] array)
{
this.Name = array[0].ToString();
this.Type = array[1].ToString();
}
}
的数据表//你可以做
List<MyEnt> list = new List<MyEnt>();
foreach(DataRow dr in table.Rows)
{
MyEnt obj = new MyEnt();
obj.Load(dr.ItemArray);
list.Add(obj);
}
+0
看起来像公平的方法,谢谢 – 2011-05-02 13:45:40
+0
好的谢谢 – Lijo 2014-08-05 15:06:55
答
您可以先将其转换为通用数据表,然后将该数据表转换为列表。
有很多代码片段可用于将通用数据表转换为列表。有些是:
How do you convert a DataTable into a generic list?
Convert DataTable to List<T>
Fastest way to convert datatable to generic list
答
你可以写一个扩展方法:
public static List<TItem> Cast<TItem>(this DataRowCollection drc, Func<DataRow, TItem> converter)
{
List<TItem> list= new List<TItem>();
foreach (DataRow row in drc)
{
list.Add(converter(row));
}
return list;
}
其中转换器是例如,含有下列lambda表达式:
item => new YourClass(item)
谢谢,
丹尼斯
喜欢的东西http://*.com/questions/441023/fastest-way-to-convert-datatable-to-泛型列表?虽然我应该强调,从微型ORM开始,而不是数据表更高效 – 2011-05-02 11:39:17