首页 > 后端开发 > C++ > 如何正确使用LINQ GroupBy、Sum和Count来聚合产品数据?

如何正确使用LINQ GroupBy、Sum和Count来聚合产品数据?

Linda Hamilton
发布: 2025-01-24 16:52:16
原创
391 人浏览过

How to Correctly Use LINQ GroupBy, Sum, and Count to Aggregate Product Data?

LINQ:GroupBy、Sum和Count

这段代码的目标是按产品代码对产品集合进行分组,并返回一个包含产品名称、每个代码的产品数量和每个产品的总价格的对象。

示例数据包含三个产品:

<code>{"p1", 6.5, "Product1"}, {"p1", 6.5, "Product1"}, {"p2", 12, "Product2"}</code>
登录后复制

预期结果如下:

<code>Product1: count 2   - Price:13 (2x6.5)
Product2: count 1   - Price:12 (1x12)</code>
登录后复制
登录后复制

但是,代码生成的计数值不正确,每个产品始终显示为1。

问题在于错误地使用了SelectMany()方法。代码应该使用Select()方法,这可以简化表达式:

<code>List<ResultLine> result = Lines
    .GroupBy(l => l.ProductCode)
    .Select(cl => new ResultLine
            {
                ProductName = cl.First().Name,
                Quantity = cl.Count().ToString(),
                Price = cl.Sum(c => c.Price).ToString(),
            }).ToList();</code>
登录后复制

此修改更正了该问题并生成了所需的计数值:

<code>Product1: count 2   - Price:13 (2x6.5)
Product2: count 1   - Price:12 (1x12)</code>
登录后复制
登录后复制

以上是如何正确使用LINQ GroupBy、Sum和Count来聚合产品数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板