繁体   English   中英

LINQ中的GroupBy问题

[英]GroupBy Issue in LINQ

首先对不起,不好的问题标题!

我有以下查询:

var q = 
        from t1 in UserScores.Where(c=>c.UserID == 1)
        from t2 in Points.Where(c => c.ID == t1.ID)
        from t3 in CouponsPackages.Where(c => c.ID == t1.ID).DefaultIfEmpty()

        group t2 by new
        {
            t1.ID,
            t1.Value,           
            t1.Operand,
            t2.Title,
            t2.Rate,
            t3.ScoreAmount
        } into g 

        select new {        
            g.Key.Title,
            Score = (g.Key.ID < 3
                ? (g.Key.ID == 1 ? g.Key.Value : g.Key.ScoreAmount)
                : (g.Key.Operand == 1 ? g.Key.Rate * 1 : g.Key.Rate * -1))
        };

结果是这样的:

Title     Score
A         10
A         50
B         30
C         60
C         -30 

但是我需要这个:

Title     Score
A         60
B         30
C         30

每行=相同标题的总和

我如何达到这个结果?

谢谢 !

您可以使用GroupBy

q.GroupBy(x => x.Title)
.Select(x => new 
{ 
     Title = x.Key, 
     Score = x.Sum(s => s.Score) 
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM