我需要将Typed DataTable的数据转换为我的实体列表。我用DataTable字段映射了实体的所有字段。
有什么想法吗?
答案 0 :(得分:4)
答案 1 :(得分:2)
一种方法是通过自定义代码完成 让我们假设你的实体类名是'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);
}
答案 2 :(得分:1)
您可以先将其转换为通用数据表,然后将该数据表转换为列表
有很多代码片段可用于将通用数据转换为列表。有些是:
How do you convert a DataTable into a generic list?
Convert DataTable to List<T>
Fastest way to convert datatable to generic list
答案 3 :(得分:0)
您可以编写扩展方法:
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)
谢谢,
丹尼斯