C# LINQ和Lambda如何实现分组统计

avatar
作者
筋斗云
阅读量:0

在C#中,使用LINQ和Lambda表达式可以轻松地对数据进行分组统计。以下是一个示例,说明如何使用LINQ和Lambda表达式对一个列表进行分组统计。

首先,我们需要一个数据类型。假设我们有一个Person类:

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

接下来,我们创建一个包含Person对象的列表:

List<Person> people = new List<Person> {     new Person { Name = "Alice", Age = 25 },     new Person { Name = "Bob", Age = 30 },     new Person { Name = "Charlie", Age = 25 },     new Person { Name = "David", Age = 30 },     new Person { Name = "Eve", Age = 28 } }; 

现在,我们将使用LINQ和Lambda表达式对这个列表进行分组统计,按照年龄进行分组:

var ageGroups = people.GroupBy(p => p.Age)                      .Select(g => new                      {                          Age = g.Key,                          Count = g.Count()                      })                      .ToList(); 

这段代码首先使用GroupBy方法按照Age属性对people列表进行分组。然后,使用Select方法将每个分组转换为一个新的匿名类型,其中包含分组的键(年龄)和该分组的元素数量(计数)。最后,使用ToList方法将结果转换为一个列表。

现在,ageGroups列表将包含按年龄分组的统计信息:

foreach (var group in ageGroups) {     Console.WriteLine($"Age: {group.Age}, Count: {group.Count}"); } 

输出:

Age: 25, Count: 2 Age: 30, Count: 2 Age: 28, Count: 1 

这就是如何使用C#中的LINQ和Lambda表达式进行分组统计的方法。

广告一刻

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