2013-10-03 2 views
1

기본적으로 나는 두 개의 proprties - ParentProductNumberOfOrders을 가진 클래스가 있습니다.Linq groupby and sum

var list = List.GroupBy(t => t.ParentProduct) 
       .Select(group => new { Product = group.Key, NumberOfOrders = group.Sum(t => t.NumberOfOrders) }) 
       .OrderBy(o => o.NumberOfOrders) 
        .Select(o => o.Product); 

List
t이 수를 포함하는 자식 제품 모든 하위 제품의 목록입니다 : 나는 별개의 상위 제품을 선택하려면, 주문의 총 수에 의해 주문 그래서 나는 다음과 같은 Linq에 사용 주문 및 부모 제품의
o는 새 개체는 위의 일을 할 것 같은 주문의 합으로 정렬되어 부모 제품의 별개의 목록을 얻을 수있는 더 좋은 방법이 있다면 궁금 해서요

을 생성 많은 선택.

+0

더 나은 방법입니다. – Flea777

+0

'데이터 구조'를 잘 이해하지 못하고 ** 별개의 부모 **를 선택하려고합니다. 따라서 서로 다른 'NumberOfOrders'가있는 동일한 'ParentProduct' 항목이 2 개있는 경우 'NumberOfOrders의 합 '을 계산 하시겠습니까? –

+0

@KingKing 부모님에 의해 그룹화 되었기 때문에 별개의 부분을 처리해야합니다. 부모님 목록을 주문 수 (숫자가없는 경우) 수에 따라 주문할 수 있는지 궁금합니다. do 2가 – Pete

답변

5

중간 선택을 제거하고 합계로 그룹을 정렬 한 다음 제품을 선택할 수 있습니다.

var list = List.GroupBy(t => t.ParentProduct) 
       .OrderBy(group => group.Sum(t => t.NumberOfOrders)) 
       .Select(group => group.Key); 
+0

Perfect를 선택합니다. 그게 제가 한 것입니다. 감사! – Pete