有一个名为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数组或通用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 使用 adapter.Update(updRows);
出了什么问题?
Cast - Select语句有轻微错误: 我只知道它应该与此类似,所以我不确定这行代码的结构,
目前报告的错误是:
错误2无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'DsPerson.PersonRow []'。存在显式转换(您是否错过了演员?)
答案 0 :(得分:2)
同样适用于强类型DataSet
:
DataRow[] updRows =
ListPerson.Select(p => dtPerson.Rows.Add(p.Nick, p.Name)).ToArray();