2010-03-15 2 views
1

2 linq 문장을 1 문장으로 통합 할 수 있는지 궁금합니다. 나는 그것이 가능해야한다고 확신하지만, 나는 다양한 시도를 할 수 없다.2 linq 문장을 1에 groupby 절과 결합하는 방법

var prevProvisionsBySubBook = (from provision in prevProvisions 
       group provision by provision.SubBook 
        into subBookGrouping 
        select 
        new 
        { 
         Key = subBookGrouping.Key, 
         Value = subBookGrouping.Sum(t => t.ProvisionUSD) 
        }); 


     var currentProvisionsBySubBook 
      = (from provision in currentProvisions 
       group provision by provision.SubBook 
        into subBookGrouping 
        select new 
        { 
         Key = subBookGrouping.Key, 
         Value = subBookGrouping.Sum(t => t.ProvisionUSD) 
        }); 

     var adjustmentChangeBySubBook 
      = (from current in currentProvisionsBySubBook 
       select new 
       { 
        Key = current.Key, 
        Value = current.Value 
          - (prevProvisionsBySubBook.Any() ? prevProvisionsBySubBook.Where(t => t.Key == current.Key).Single().Value : 0) 
       }); 

어떤 도움도 감사하겠습니다.

답변

2

당신은 이런 식으로 작업을 수행 할 수 있습니다

var adjustmentChangeBySubBook = 
    from provision in 
     (from currentProvision in currentProvisions select new 
      { 
       currentProvision.SubBook, 
       CurrentUSD = currentProvision.ProvisionUSD, 
       PreviousUSD = 0 
      }).Concat 
     (from prevProvision in prevProvisions select new 
      { 
       prevProvision.SubBook, 
       CurrentUSD = 0, 
       PreviousUSD = prevProvision.ProvisionUSD 
      }) 
    group provision by provision.SubBook into subBookGrouping select new 
    { 
     subBookGrouping.Key, 
     Value = subBookGrouping.Sum(t => t.CurrentUSD - t.PreviousUSD) 
    }; 
관련 문제