2014-02-08 3 views
1

У меня есть список из списка следующимСписок Список групп Результат

var left = (from T in brndT 
     join S in brndS 
     on T.ID equals S.ID 
     into temp 
     from S in temp.DefaultIfEmpty() 
     select new BrandSalesTarget 
     { 
      ID = T.ID, 
      Target = T.Target == null ? 0 : (int)T.Target, 
      Sales = S != null ? (int)S.Qty : 0 
     }).ToList(); 
    listOfList.Add(left); 

Теперь я хочу ID, TotalTarget, TotalSales что означает группу по списку списка с ID, Sum(target), Sum(sales). Как это сделать?

ответ

1

Это звучит, как вы хотите что-то вроде этого:

var result = 
    from list in listOfList 
    from T in list 
    group T by T.ID into g 
    select new // possibly select new BrandSalesTarget 
    { 
     ID = g.Key, 
     Target = g.Sum(t => t.Target), 
     Sales = g.Sum(t => t.Sales) 
    }; 

Тем не менее, кажется, лучшее решение может быть рефакторинг кода, так что вы можете получить этот результат напрямую, а не иметь дело с List<List<BrandSalesTarget>>, но без видя полный контекст, трудно сказать, как это может выглядеть.

Смежные вопросы