Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按分组后如何使用Linq Sum_C# - Fatal编程技术网

C# 按分组后如何使用Linq Sum

C# 按分组后如何使用Linq Sum,c#,C#,我有一个记录列表,即 Id, Activity, Marks 1, A, 12 1, B, 14 1, B, 15 2, A, 1 2,A,100 我想按Id和活动对记录进行分组,然后返回记录的总和 如何使用LINQ实现这一点?例如,结果应为: Id, Activity, TotalMarks 1, A, 12 1, B, 29 2, A, 101 列表活动; 活动 .GroupBy(a=>new{a.Id,a.Activity}) .Select(ag=>new{ag.Key.Id,ag.

我有一个记录列表,即

Id, Activity, Marks
1, A, 12
1, B, 14
1, B, 15
2, A, 1
2,A,100
我想按Id和活动对记录进行分组,然后返回记录的总和

如何使用LINQ实现这一点?例如,结果应为:

Id, Activity, TotalMarks
1, A, 12
1, B, 29
2, A, 101
列表活动;
活动
.GroupBy(a=>new{a.Id,a.Activity})
.Select(ag=>new{ag.Key.Id,ag.Key.Activity,TotalMarks=ag.Select(a=>a.Marks).Sum())
列出活动;
活动
.GroupBy(a=>new{a.Id,a.Activity})
.Select(ag=>new{ag.Key.Id,ag.Key.Activity,TotalMarks=ag.Select(a=>a.Marks).Sum())
其中
MyClass
具有指定的属性


其中
MyClass
指定了属性。

我现在得到一个新集合,其中Id、activity和TotalMarks是属性。如何将其转换为列表,其中T是一个具有三个属性Id、Activity和TotalTrade的类。您可以使用
。选择(…)
。ToList()
。我现在获得一个新集合,其中Id、Activity和TotalMarks是属性。如何将其转换为列表,其中T是一个具有三个属性Id、Activity和TotalTrade的类,您可以使用
。选择(…)
.ToList()
List<Activity> activity;
activity
  .GroupBy (a => new {a.Id, a.Activity})
  .Select (ag => new {ag.Key.Id, ag.Key.Activity, TotalMarks=ag.Select(a => a.Marks).Sum()})
var result = 
    (from x in values
    group x by new {x.Id, x.Activity} into g
    select new MyClass()
    {
        Id = g.Key.Id,
        Activity = g.Key.Activity,
        TotalMarks = g.Sum(y => y.Marks)
    }).ToList();