在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#中分组操作与聚合函数的结合使用。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: c#中tostring的用法是什么