hacer - linq sum lambda expression
Suma de elementos en una colección (1)
Usando LINQ to SQL, tengo una clase Order con una colección de OrderDetails. Los Detalles del pedido tienen una propiedad llamada LineTotal que obtiene Qnty x ItemPrice.
Sé cómo hacer una nueva consulta LINQ de la base de datos para encontrar el total del pedido, pero como ya tengo el conjunto de OrderDetails del DB, ¿hay un método simple para devolver la suma del LineTotal directamente desde la colección?
Me gustaría agregar el total del pedido como propiedad de mi clase de pedido. Me imagino que podría recorrer la colección y calcular la suma con una para cada Order.OrderDetail, pero supongo que hay una mejor manera.
Puede hacer LINQ to Objects y el uso de LINQ para calcular los totales:
decimal sumLineTotal = (from od in orderdetailscollection
select od.LineTotal).Sum();
También puede usar lambda-expressions para hacer esto, que es un poco "más limpio".
decimal sumLineTotal = orderdetailscollection.Sum(od => od.LineTotal);
A continuación, puede conectar esto a su Order-class si lo desea:
Public Partial Class Order {
...
Public Decimal LineTotal {
get {
return orderdetailscollection.Sum(od => od.LineTotal);
}
}
}