如何将类型化的DataTable转换为实体列表?

我需要将Typed DataTable的数据转换为我的实体列表。 我用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 list = new List(); foreach(DataRow dr in table.Rows) { MyEnt obj = new MyEnt(); obj.Load(dr.ItemArray); list.Add(obj); } 

我会查看AutoMapper ,它是一个专注于这种场景的好工具。

这里也是完全符合您情景的人。

希望这有用!

您可以先将其转换为通用数据表,然后将该数据表转换为列表。
有很多代码片段可用于将通用数据转换为列表。 有些是:
如何将DataTable转换为通用列表?
将DataTable转换为List
将数据表转换为通用列表的最快方法

你可以写一个扩展方法:

 public static List Cast(this DataRowCollection drc, Func converter) { List list= new List(); foreach (DataRow row in drc) { list.Add(converter(row)); } return list; } 

其中转换器是例如包含以下内容的lambda表达式:

 item => new YourClass(item) 

谢谢,

丹尼斯