C# 使用嵌套的select LINQ循环数组
我有以下数据结构(只是一个示例性的视觉表示): 如果C# 使用嵌套的select LINQ循环数组,c#,linq,nested-queries,C#,Linq,Nested Queries,我有以下数据结构(只是一个示例性的视觉表示): 如果Customer对象在其Orders[]中有多个Order条目,则我需要其中所有条目的总和。但通过这个查询,我只得到第一个订单的总和 如果我这样做: var sumEachCust = from c in customers let sum = 0.0m from o in c.Orders select new
Customer
对象在其Orders[]
中有多个Order
条目,则我需要其中所有条目的总和。但通过这个查询,我只得到第一个订单的总和
如果我这样做:
var sumEachCust = from c in customers
let sum = 0.0m
from o in c.Orders
select new
{
c.Name,
sum =+ o.Product.Price * o.Quantity
};
然后,当Customer
对象的Orders[]
属性中存在订单实体时,我将多次获得该名称,我不希望这样
简单-只需一次所有订单的名称和总和
from c in customers
select new
{
Name = c.name,
OrderTotal = c.orders.Sum(o => o.product.price * o.quantity)
}
如果您真的想使用
let
,那么在这种情况下,您可以这样做
from c in customers
let sum = c.orders.Sum(o => o.product.price * o.quantity)
select new
{
Name = c.name,
OrderTotal = sum
}
如果您真的想使用
let
,那么在这种情况下,您可以这样做
from c in customers
let sum = c.orders.Sum(o => o.product.price * o.quantity)
select new
{
Name = c.name,
OrderTotal = sum
}
工作,是一个真正干净和简单的解决方案!谢谢!尽管如此,您能给我一个在查询中使用
let
和临时变量的例子吗,因为我是这样做的,并且想看看在这种情况下如何正确使用嵌套的select
语句?@Milkncookiez请参阅更新,尽管您实际上根本不需要在这里使用let
。对不起,我想询问一个带有嵌套select
的示例,因为例如,如果我必须将所有客户的订单相加为一个总和(而不是将每个客户的订单分别相加),那么我将如何做?(假设我不完全确定如何使用嵌套查询的迭代逻辑)。@Milkncookiez要返回所有记录的总和,那么您只需执行let sum=customers.sum(x=>x.orders.sum(o=>o.product.price*o.quantity))
-请记住,这将导致一个单独的查询。这是一个非常干净简单的解决方案!谢谢!尽管如此,您能给我一个在查询中使用let
和临时变量的例子吗,因为我是这样做的,并且想看看在这种情况下如何正确使用嵌套的select
语句?@Milkncookiez请参阅更新,尽管您实际上根本不需要在这里使用let
。对不起,我想询问一个带有嵌套select
的示例,因为例如,如果我必须将所有客户的订单相加为一个总和(而不是将每个客户的订单分别相加),那么我将如何做?(考虑到我不完全确定如何使用嵌套查询的迭代逻辑)。@Milkncookiez要返回所有记录的总和,您只需执行let sum=customers.sum(x=>x.orders.sum(o=>o.product.price*o.quantity))
-记住这将导致单独的查询。
from c in customers
let sum = c.orders.Sum(o => o.product.price * o.quantity)
select new
{
Name = c.name,
OrderTotal = sum
}