query - linq to datatable c# example
¿Cómo convertir este resultado de consulta LINQ al objeto DataTable? (2)
Tengo el objeto DataTable ( OutputDT1
), quiero usar LINQ para agrupar por columna ConfirmedBy
, luego lo convierto de nuevo en un objeto DataTable
que tiene solo dos columnas ConfirmBy
y Count
.
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(),
};
Una manera simple sería:
DataTable dt = new DataTable();
foreach(var item in result)
{
dt.Rows.Add(item.ConfirmedBy, item.count);
}
Uso de la solución de Cómo: Implementar CopyToDataTable <T> Donde el tipo genérico T no es un DataRow
podemos escribir:
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();