簡體   English   中英

將GroupBy行添加到數據表中

[英]Adding GroupBy rows into a datatable

我正在像這樣的數據集上進行分組:

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方法添加一行,但是強制轉換返回許多行。 這是行不通的。 您必須遍歷分組結果集中的每個循環。 另外,您可以直接復制一行嗎? 對我來說,使用數據集已經有一段時間了,但是您是否不必為新表創建新行並復制數據呢?

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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM