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

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

Linda Hamilton
Linda Hamilton原创
2025-01-24 16:52:16396浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn