如何将类型化的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)
谢谢,
丹尼斯