c# List对象 分组汇总
时间: 2023-06-30 21:24:48 浏览: 47
你可以使用 LINQ 的 `GroupBy` 方法来对 C# 中的 `List` 对象进行分组汇总。下面是一个示例代码:
```csharp
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
}
var people = new List<Person>
{
new Person { Name = "Alice", Age = 25, Gender = "Female" },
new Person { Name = "Bob", Age = 30, Gender = "Male" },
new Person { Name = "Charlie", Age = 35, Gender = "Male" },
new Person { Name = "Dave", Age = 40, Gender = "Male" },
new Person { Name = "Eve", Age = 45, Gender = "Female" },
new Person { Name = "Frank", Age = 50, Gender = "Male" }
};
var query = from p in people
group p by p.Gender into g
select new
{
Gender = g.Key,
Count = g.Count(),
AverageAge = g.Average(p => p.Age),
MaxAge = g.Max(p => p.Age),
MinAge = g.Min(p => p.Age)
};
foreach (var result in query)
{
Console.WriteLine($"Gender: {result.Gender}, Count: {result.Count}, Average Age: {result.AverageAge}, Max Age: {result.MaxAge}, Min Age: {result.MinAge}");
}
```
在上面的示例中,我们首先创建了一个包含 `Person` 对象的列表。然后,我们使用 `GroupBy` 方法按照性别对这些人进行分组。然后,我们使用 `select` 子句来汇总每个组的数据,包括性别、计数、平均年龄、最大年龄和最小年龄。最后,我们使用 `foreach` 循环来遍历结果并将其输出到控制台上。