2011-10-21 3 views
5

끔찍한 제목에 사과, 나는 내 문제를 어떻게 표현할 지 잘 모릅니다. 이건 정말 쇼핑 카트/고객의 물건을 취급하지 않지만 아이디어가 있기 때문에LINQ 데이터 2 번 그룹화

CustAcct cust = new CustAcct(); 
cust.Name = "John Doe"; 
cust.Account = "ABC123"; 
cust.OrderTotal = 123.43 
cust.OrderQty = 4; 
cust.TransDate = "12/26/2010 13:00" 

다음 부분을 비판 너무 많은 시간을 낭비하지 마십시오 :

나는처럼 보이는 물체가 같은, 모든 사람들이 꽤 잘 알고있는 것을 사용하고 싶었습니다.

계정에 둘 이상의 고객이있을 수 있으며 고객은 둘 이상의 계정을 가질 수 있습니다. 그래서

당신은 :

Account Customer OrderTotal OrderQty 
ABC123  John Doe 155.55   6 
ABC321  John Doe  97.94   4 
ABC123  Jane Zoe  79.10   3 
ABC321  Jane Zoe 142.99   7 

I : 내 출력은 모양을, 그래서 내가하고 싶은 무엇

List<CustAcct> custList = new List<CustAcct>(); 
custList.Add("John Doe", "ABC123", 123.43, 4, "12/26/2010 13:00"); 
custList.Add("John Doe", "ABC123", 32.12, 2, "12/27/2010 10:00"); 
custList.Add("John Doe", "ABC321", 43.34, 1, "12/28/2010 15:00"); 
custList.Add("John Doe", "ABC321", 54.60, 3, "12/28/2010 16:00"); 
custList.Add("Jane Zoe", "ABC123", 46.45, 2, "12/28/2010 17:00"); 
custList.Add("Jane Zoe", "ABC123", 32.65, 1, "12/29/2010 12:00"); 
custList.Add("Jane Zoe", "ABC321", 67.65, 3, "12/29/2010 23:00"); 
custList.Add("Jane Zoe", "ABC321", 75.34, 4, "12/30/2010 08:00"); 

각 계정 및 고객에 대한 모든 OrderTotal 및 OrderQty의 합계를 얻을 수있다 내 LINQ to Objects 도서 및 101 LINQ 샘플을 통해이 문제를 해결하는 방법을 알 수 없습니다. 감사. 이런 당신은 그룹과 합계 수

+0

메서드 구문이나 쿼리 구문을 사용하고 있습니까? –

+0

쿼리 구문을 사용하고 있습니다. CustList의 c에서 ... – Stephen

+0

계정/고객 조합을 그룹화 하시겠습니까? 또는 고객별로 그룹화 한 다음 계정별로 그룹화 할 수 있습니까? 미묘한 차이는 있지만 내 대답에 영향을줍니다 ... –

답변

9

:

from ca in custList 
group ca by new { ca.Name, ca.Account } into g 
select new { 
    g.Key.Account, 
    g.Key.Name, 
    OrderTotal = g.Sum(o => o.OrderTotal), 
    OrderQty = g.Sum(o => o.OrderQty) 
}; 

See it in action.

+0

감사합니다. 그것은 완벽하게 작동했습니다. – Stephen