c#的group操作与聚合函数的结合使用

avatar
作者
筋斗云
阅读量:0

在C#中,我们可以使用LINQ(Language Integrated Query)查询来实现对集合的分组(group)操作以及聚合函数(如Sum、Average、Min、Max等)的结合使用

首先,假设我们有一个Person类,如下所示:

public class Person {     public int Id { get; set; }     public string Name { get; set; }     public int Age { get; set; } } 

接下来,我们创建一个List<Person>来存储一些示例数据:

var people = new List<Person> {     new Person { Id = 1, Name = "Alice", Age = 30 },     new Person { Id = 2, Name = "Bob", Age = 25 },     new Person { Id = 3, Name = "Charlie", Age = 35 },     new Person { Id = 4, Name = "David", Age = 28 },     new Person { Id = 5, Name = "Eva", Age = 32 }, }; 

现在,我们想要根据年龄对这些人进行分组,并计算每个年龄组的总年龄。我们可以使用LINQ查询和聚合函数结合GroupBy方法来实现这个需求:

var ageGroupResult = people     .GroupBy(p => p.Age)     .Select(g => new     {         AgeGroup = g.Key,         TotalAge = g.Sum(p => p.Age)     })     .ToList(); 

在这个查询中,我们首先使用GroupBy方法根据年龄对people列表进行分组。然后,我们使用Select方法来选择每个年龄组及其总年龄(使用Sum聚合函数计算)。最后,我们将结果转换为一个新的匿名类型列表并输出。

运行这段代码,你将得到以下输出:

AgeGroup = 25, TotalAge = 28 AgeGroup = 28, TotalAge = 28 AgeGroup = 30, TotalAge = 30 AgeGroup = 32, TotalAge = 32 AgeGroup = 35, TotalAge = 35 

这样,我们就实现了C#中分组操作与聚合函数的结合使用。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!