Tengo tres columnas en una datatable: cadena, DateTime y decimal. Quiero agrupar por la columna de cadena y decimal, y para las filas agrupadas quiero sumar los valores decimales. Sé cómo hacer la parte de suma, pero ¿cómo se agrupan dos columnas diferentes en una tabla de datos?C# usando linq para agrupar por varias columnas en una tabla de datos
Este es mi código hasta ahora que no funciona correctamente:
var newSort = from row in objectTable.AsEnumerable()
group row by new {ID = row.Field<string>("resource_name"), time1 = row.Field<DateTime>("day_date")} into grp
orderby grp.Key
select new
{
resource_name1 = grp.Key.ID,
day_date1 = grp.Key.time1,
Sum = grp.Sum(r => r.Field<Decimal>("actual_hrs"))
};
"El compilador cree que todo el obj Los efectos son los mismos, por lo que cada fila se agrupa "- ¿Quiere decir que todos los objetos se ponen en un gran grupo, por lo que termina con un solo elemento en la colección' nuevaSort'? – StriplingWarrior
sí, newSort solo contiene el último elemento de la tabla de datos – Sam
La consulta me parece correcta. ¿Puedes verificar y volver a verificar tus entradas? – StriplingWarrior