【问题标题】:List Of List group Result列表组结果列表
【发布时间】:2014-03-06 00:12:36
【问题描述】:

我有一个列表如下

    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)。怎么做?

【问题讨论】:

    标签: c# linq list group-by


    【解决方案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>>,但如果没有看到完整的上下文,很难说它会是什么样子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多