2

我有兴趣在 2 列之后将数据表中的一些行分组并将结果保存在另一个数据表中。我有以下代码用于对行进行分组:

var result = from t in newtable.AsEnumerable()
               group t by new { Col1= t.Field<String>("ID1"), Col2=  t.Field<String>("ID2") } into grp
                 select new
                 {
                     Col1= grp.Key.ID1,
                     Col2= grp.Key.ID2
                 };

如何轻松转换result为数据表?

4

2 回答 2

2

只需CopyToDatatable与您的结果查询一起使用:

IEnumerable<DataRow> query = from t in newtable.AsEnumerable()
group t by new { Col1 = t.Field<String>("ID1"), Col2 = t.Field<String>("ID2") } into grp
 select new
{
Col1 = grp.Key.ID1,
Col2 = grp.Key.ID2
};
DataTable boundTable = query.CopyToDataTable<DataRow>();

CopyToDatatableSystem.Data.DataSetExtensions命名空间中

于 2013-05-24T12:04:12.883 回答
0

你必须应用foreach 类似的循环

foreach (var item in results)
                {
                    Datatable dt = new DataTable();
                    DataRow dr = dt.NewRow();
                    dr["Col1"] = item.Col1;
                    dr["Col2"] = item.Col2;
                    dt.Rows.Add(dr);
                }

您必须应用这种类型的场景。

希望它有效。

于 2013-05-24T12:03:24.827 回答