0

我有 DataTable 对象(OutputDT1),我想使用 LINQ 按列分组ConfirmedBy,然后将其转换回DataTable只有两列ConfirmByCount.

var result = from row in OutputDT1.AsEnumerable()
             group row by new
             {
                 ConfirmedBy = row.Field<string>("ConfirmedBy")
             } 
             into grp
             select new
             {
                 ConfirmedBy = grp.Key.ConfirmedBy,
                 Count = grp.Count(),
             };
4

2 回答 2

1

一个简单的方法是:

DataTable dt = new DataTable();
foreach(var item in result)
{
  dt.Rows.Add(item.ConfirmedBy, item.count);
}
于 2013-10-02T17:41:38.227 回答
1

使用如何:实现通用类型 T 不是 DataRow 的 CopyToDataTable<T> 中的解决方案

我们可以写:

var result = (from row in OutputDT1.AsEnumerable()
                group row by row.Field<string>("ConfirmedBy") into grp
                select new
                {
                    ConfirmedBy = grp.Key,
                    Count = grp.Count(),
                }).CopyToDataTable();
于 2013-10-02T17:43:43.027 回答