温馨提示×

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

c#
小樊
81
2024-09-20 08:13:25
栏目: 编程语言

在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#中分组操作与聚合函数的结合使用。

0