Как использовать Linq для выбора и группировки сложного дочернего объекта из списка родителей - PullRequest
4 голосов
/ 10 апреля 2010

Как использовать Linq для выбора и группировки сложного дочернего объекта из списка родителей.

У меня есть OrderList , каждый из объектов заказа имеет OrderProductVariantList (OrderLineList), и каждый из объектов OrderProductVariant имеет ProductVariant, а затем Объект ProductVariant будет иметь объект Product , который содержит информацию о продукте.

Моя цель - выбрать и сгруппировать самые популярные товары из списка заказов.

Может кто-нибудь помочь мне с этим?

Большое спасибо.

Ответы [ 2 ]

3 голосов
/ 10 апреля 2010

Твоему описанию трудно следовать, но я думаю, что ты просто хочешь достать Продукты и оценить их по количеству раз, когда они появляются. 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()
                       });
1 голос
/ 11 апреля 2010

Запрос не является результатом. Чтобы просмотреть результат, вы можете перебрать объект query:

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

Что касается того, почему запрос не был доступен в окне наблюдения, я могу только представить, что он либо еще не был в области, либо он уже вышел из области. Попробуйте поставить точку останова на строке сразу после той строки, которую вы разместили в месте назначения запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...