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();