2015-02-23 82 views
0

我有什麼,我試圖做的是包含集團通過對象嵌套列表LINQ

sales order header 
and list of order lines 
訂單行我有實際訂單行內

銷售訂單對象,產品信息的對象和股票信息對象中:

public class SalesOrder 
{ 
    public Header SalesHeader { get; set; } 
    public List<OrderLineProductInfo> OrderLines { get; set; } 
} 

public class OrderLineProductInfo 
{ 
    public Line salesOrderLine { get; set; } 
    public Info ProductInfo { get; set; } 
    public Stock ProductStock { get; set; } 
} 

因此可以得到SalesOrder對象,以便例如銷售訂單索引0

具有內這些線中的一個具有優選增刊2線ProductStockObject的列表美國廣播公司和其他線的利爾已經首選供應商123

我希望能夠以小組的首選供應商屬性

var separatePreferredSuppliers = 
    (from b in x.OrderLines 
       .GroupBy(g => g.ProductStock.PreferredSupplier) 
        select ... 
    ).ToList(); 

不太清楚,需要選擇什麼下一步怎麼走? SalesOrder的新列表?

我想它,使它給人的銷售訂單,但分裂的兩個實例2中爲每個首選供應商

+0

這個問題看起來是你所追求的,看到這裏:http://stackoverflow.com/questions/7325278/group-by-in-linq?rq=1 – w69rdy 2015-02-23 16:01:39

回答

0

我覺得我得到你的意思

from line in x.OrderLines 
group line by line.ProductStock.PreferredSupplier into grouped 
select new SalesOrder 
{ 
    OrderLines = grouped.ToList() 
} 

,雖然我不知道你如何填充您SalesHeader

0

容易,當你知道GROUPBY功能ruturns什麼 - 你想要的密鑰和列表:

.Select((g) => new { supplier = g.Key, prodlist = g.ToList()}