【发布时间】:2011-01-17 21:54:57
【问题描述】:
我有一个疑问,有时我从DataTable 转换为List<T>:
List<EDog> lstDogs = (from drRow in dsDogs.Tables[0].AsEnumerable()
select new EDog()
{
intIdDog = drRow.Field<int>("IdDog"),
intIdOwner = drRow.Field<int?>("IdOwner"),
intAge = drRow.Field<int>("Age"),
strName = drRow.Field<string>("Name")
}).ToList();
这工作得很好,但现在我正在考虑将其通用化,以便任何类型的 DataSet 都可以转换为强类型列表。
我怎样才能使它通用?也许是围绕这部分并创建对象的委托?
new EDog()
{
intIdDog = drRow.Field<int>("IdDog"),
intIdOwner = drRow.Field<int?>("IdOwner"),
intAge = drRow.Field<int>("Age"),
strName = drRow.Field<string>("Name")
}
我试过了,但是报错:
select (lambda) expected....
有什么建议吗?
我需要这个的原因是因为结果的每个 DataRow 都需要转换为实体以便更好地操作。
【问题讨论】:
-
如何将 DataTable 转换为通用列表:stackoverflow.com/questions/208532/…
-
谢谢,但我们的想法是不要使用 foreach 语句。
标签: c# .net generics ado.net datatable