向数据表中添加GroupBy行
本文关键字:GroupBy 添加 数据表 | 更新日期: 2023-09-27 17:49:41
我在一个数据表上做一个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>());
}
fwdsDataTable.Rows.Add(row.Cast<DataRow>());
Add方法只添加一行,而cast返回许多行。这是行不通的。您必须循环遍历分组结果集中的每一个。另外,你可以直接复制一行吗?对我来说,数据集已经有一段时间了,但你不需要为新表创建新行并复制数据吗?
HTH .
唯一的方法是for-each
,在这里使用它是可以的。
DataTable t = new DataTable();
var fwdRowGroups = t.AsEnumerable().GroupBy(row => row.Field<object>("AcctId"));
DataTable g = new DataTable();
foreach (var row in fwdRowGroups)
{
g.Rows.Add(row);
}
还要注意去除多余的ToList()
。你要它干什么?
在DataRow.Field<T>()
中使用更具体的类型,它是为类型安全操作创建的。否则只使用row["AcctId]