【发布时间】:2012-07-01 03:47:34
【问题描述】:
有一个名为 DsPerson 的类型化数据集 还有一个名为 ListPerson 的自定义类型通用列表
DsPerson Ds1Person;
List<Person> ListPerson;
想做类似下面代码的事情,
请帮我纠正这个:
DataTable dtPerson = Ds1Person.Tables["Person"];
DataRow drPerson = dtPerson.NewRow();
DsPerson.PersonRow[] updRows = ListPerson.Cast<Person>().Select(row => dtPerson.NewRow()
{
Nick = row.Nick,
Name = row.NameX,
}).ToArray();
需要一个 DataRow Array 或一个这样制作的通用 DataTable。
由于我正在处理的代码规范,不在此处寻找实体或任何其他替代方案。
非常感谢任何帮助...
More Clarifying :
需要什么:
类似于颠倒这些: (反方向)
http://www.stackoverflow.com/questions/441023/fastest-way-to-convert-datatable-to-generic-list
或者一种更清洁和 Linqy 的方式来做类似的事情:
http://beecy.net/post/2009/05/18/convert-generic-list-to-datatable-using-reflection.aspx
获取正确的 DsPerson.PersonRow[] updRows 搭配使用 适配器.更新(updRows);
怎么了?
Cast - Select 语句有轻微错误: 就是知道应该和这个差不多,所以对这行代码的结构不太确定,
目前报告的错误是:
错误 2 无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“DsPerson.PersonRow[]”。存在显式转换(您是否缺少演员表?)
【问题讨论】: