首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在linq中汇总子列表?

在LINQ中汇总子列表可以使用GroupBy和Select方法来实现。下面是一个示例代码:

代码语言:csharp
复制
var data = new List<Student>
{
    new Student { Name = "Alice", Subject = "Math", Score = 80 },
    new Student { Name = "Alice", Subject = "English", Score = 90 },
    new Student { Name = "Bob", Subject = "Math", Score = 75 },
    new Student { Name = "Bob", Subject = "English", Score = 85 },
    new Student { Name = "Bob", Subject = "Science", Score = 70 }
};

var summary = data.GroupBy(s => s.Name)
                  .Select(g => new
                  {
                      Name = g.Key,
                      TotalScore = g.Sum(s => s.Score),
                      Subjects = g.Select(s => s.Subject).ToList()
                  })
                  .ToList();

foreach (var item in summary)
{
    Console.WriteLine($"Name: {item.Name}");
    Console.WriteLine($"Total Score: {item.TotalScore}");
    Console.WriteLine("Subjects:");
    foreach (var subject in item.Subjects)
    {
        Console.WriteLine(subject);
    }
    Console.WriteLine();
}

public class Student
{
    public string Name { get; set; }
    public string Subject { get; set; }
    public int Score { get; set; }
}

上述代码中,我们首先使用GroupBy方法按照学生姓名进行分组,然后使用Select方法创建一个新的匿名类型对象,其中包含姓名、总分和科目列表。最后,通过遍历summary列表,输出每个学生的姓名、总分和科目列表。

这个方法适用于需要对子列表进行汇总的场景,比如学生成绩统计、订单商品汇总等。

腾讯云相关产品和产品介绍链接地址:

请注意,以上仅为示例产品,实际应根据具体需求选择适合的腾讯云产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券