Сумма предметов в коллекции
Используя LINQ to SQL, у меня есть класс Order с коллекцией OrderDetails. Детали заказа имеют свойство, называемое LineTotal, которое получает Qnty x ItemPrice.
Я знаю, как выполнить новый запрос LINQ для базы данных, чтобы найти общую сумму заказа, но поскольку у меня уже есть коллекция OrderDetails из БД, есть простой способ вернуть сумму LineTotal непосредственно из коллекции
Я хотел бы добавить общую сумму заказа в качестве свойства моего класса Order. Я предполагаю, что я мог бы прокрутить коллекцию и вычислить сумму с помощью для каждого Order.OrderDetail, но я предполагаю, что есть лучший способ.
Ответы
Ответ 1
Вы можете использовать LINQ для объектов и использовать LINQ для вычисления итогов:
decimal sumLineTotal = (from od in orderdetailscollection
select od.LineTotal).Sum();
Вы также можете использовать лямбда-выражения для этого, что немного "чище".
decimal sumLineTotal = orderdetailscollection.Sum(od => od.LineTotal);
Затем вы можете подключить это к своему классу Order, если хотите:
Public Partial Class Order {
...
Public Decimal LineTotal {
get {
return orderdetailscollection.Sum(od => od.LineTotal);
}
}
}