加入List1和List2来填充List1中的字段

时间:2014-06-24 06:38:03

标签: linq

我有两个列表说客户和订单使用字段cust_id加入。 客户有另一个字段TotalOrderQty,我需要通过获取给定日期范围内该客户的所有order_quantity值的总和来填充(通过查找Order表)。请帮我用Linq编写一个查询(不为每个客户使用Foreach)。

另请注意,即使客户未在指定日期范围内下订单,也应列出客户条目。

1 个答案:

答案 0 :(得分:1)

你可以尝试这个:

var result = Customers.Join(Orders, x=>x.cust_id, y=>y.cust_id, 
                            (x,y) => new 
                            {
                                CustomeId = x.cust_id,
                                TotalOrderQty = x.TotalOrderQty,
                                Date = y.Date
                            }).Where(x=>x.Date>=startDate and x.Date<=endDate)
                              .GroupBy(x=>x.CustomerId)
                              .Select(x=> new 
                                      {
                                          CustomerId = x.Key,
                                          SumTotalOrderQty = x.Sum(y=>y.TotalOrderQty)
                                      });

其中startDateendDate定义了日期范围。

注意我已将您的列表重命名为CustomersOrders,因为这些定义更有意义。