簡體   English   中英

如何使用Linq從父列表中選擇和分組復雜的子對象

[英]How to use Linq to select and group complex child object from a parents list

如何使用Linq從父列表中選擇和分組復雜的子對象。

我有一個OrderList,每個訂單對象都有一個OrderProductVariantList (OrderLineList),每個OrderProductVariant對象都有ProductVariant,然后ProductVariant對象將有一個Product對象,其中包含產品信息。

我的目標是從訂單列表中選擇和分組最受歡迎的產品。

誰能幫我這個?

非常感謝。

您的描述很難理解,但我認為您只想獲取產品並按發生次數對其進行排名。 SelectMany將對此有所幫助。

 var query = orderList.SelectMany( o => o.OrderLineList )
                        // results in IEnumerable<OrderProductVariant>
                      .Select( opv => opv.ProductVariant )
                      .Select( pv => p.Product )
                      .GroupBy( p => p )
                      .Select( g => new {
                                    Product = g.Key,
                                    Count = g.Count()
                       });

查詢不是結果。 要查看結果,您可以遍歷query對象:

foreach (var result in query) {
    Console.WriteLine(result);
} 

至於為什么查詢在觀察窗口中不可用,我只能想象它還沒有在范圍內,或者它已經超出了范圍。 嘗試在您分配給查詢的行所在行之后立即在行上放置斷點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM