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