在C#中使用LINQ动态分组并计算合计和/最大值数据,可以按照以下步骤进行:
using System.Linq;
List<Person> persons = new List<Person>
{
new Person { Name = "Alice", Age = 25, Salary = 5000 },
new Person { Name = "Bob", Age = 30, Salary = 6000 },
new Person { Name = "Charlie", Age = 25, Salary = 5500 },
new Person { Name = "David", Age = 35, Salary = 7000 },
new Person { Name = "Eve", Age = 30, Salary = 6500 }
};
var result = persons
.GroupBy(p => p.Age) // 按照年龄分组
.Select(g => new
{
Age = g.Key,
TotalSalary = g.Sum(p => p.Salary), // 计算总薪资
MaxSalary = g.Max(p => p.Salary) // 计算最高薪资
});
foreach (var group in result)
{
Console.WriteLine($"Age: {group.Age}, Total Salary: {group.TotalSalary}, Max Salary: {group.MaxSalary}");
}
完整示例代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public int Salary { get; set; }
}
public class Program
{
public static void Main()
{
List<Person> persons = new List<Person>
{
new Person { Name = "Alice", Age = 25, Salary = 5000 },
new Person { Name = "Bob", Age = 30, Salary = 6000 },
new Person { Name = "Charlie", Age = 25, Salary = 5500 },
new Person { Name = "David", Age = 35, Salary = 7000 },
new Person { Name = "Eve", Age = 30, Salary = 6500 }
};
var result = persons
.GroupBy(p => p.Age)
.Select(g => new
{
Age = g.Key,
TotalSalary = g.Sum(p => p.Salary),
MaxSalary = g.Max(p => p.Salary)
});
foreach (var group in result)
{
Console.WriteLine($"Age: {group.Age}, Total Salary: {group.TotalSalary}, Max Salary: {group.MaxSalary}");
}
}
}
这样,你就可以在C#中使用LINQ动态分组并计算合计和/最大值数据了。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云