将 GroupBy 行添加到数据表中
我正在对这样的数据表进行分组:
List<DataRow> allRows = priceData.IndexTable.AsEnumerable().ToList();
var fwdRowGroups = allRows.GroupBy(row => row.Field<object>("AcctId"));
DataTable fwdsDataTable = new DataTable();
我需要将这些行添加到新的数据表中:fwdsDataTable。 我该怎么做?谢谢。
这对我不起作用:
foreach (var row in fwdRowGroups)
{
fwdsDataTable.Rows.Add(row.Cast<DataRow>());
}
Am doing a groupby on a datable like this:
List<DataRow> allRows = priceData.IndexTable.AsEnumerable().ToList();
var fwdRowGroups = allRows.GroupBy(row => row.Field<object>("AcctId"));
DataTable fwdsDataTable = new DataTable();
I need to add these rows into a new datatable: fwdsDataTable.
How do I do it?Thanks.
This does not work for me:
foreach (var row in fwdRowGroups)
{
fwdsDataTable.Rows.Add(row.Cast<DataRow>());
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Add 方法添加一行,但cast 返回多行。这不太管用。您必须循环遍历分组结果集中的每一项。另外,可以直接复制一行吗?我使用数据集已经有一段时间了,但是您不需要为新表创建一个新行并复制数据吗?
HTH。
The Add method adds one row, but cast returns many. This won't quite work. You'd have to loop through each one in the grouped result set. Also, can you copy a row over directly? It's been a while for me with datasets, but don't you have to create a new row for the new table and copy the data over too?
HTH.
唯一的方法是
for-each
,在这里使用它就可以了。另请注意删除多余的
ToList()
。你需要它做什么?并在 DataRow.Field() 中使用更具体的类型,它是为类型安全操作而创建的。否则仅使用
row["AcctId]
The only way is
for-each
and it's ok to use it here.Also note the removal of excess
ToList()
. What for do you need it?And use more specific type in
DataRow.Field<T>()
, it's created for type-safe operations. Otherwise use justrow["AcctId]